ropav 0.1.7 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/README.md +1 -1
  2. package/dist/ancestry.js +136 -0
  3. package/dist/calendar.css +173 -0
  4. package/dist/calendar.js +714 -0
  5. package/dist/calendar2.js +37 -0
  6. package/dist/chevron-left.js +12 -0
  7. package/dist/color-picker.js +38 -88
  8. package/dist/combobox.css +251 -0
  9. package/dist/combobox.js +410 -0
  10. package/dist/components/calendar/calendar.d.ts +30 -0
  11. package/dist/components/calendar/calendarBehavior.d.ts +49 -0
  12. package/dist/components/calendar/index.d.ts +3 -0
  13. package/dist/components/calendar/index.js +3 -0
  14. package/dist/components/calendar/types.d.ts +53 -0
  15. package/dist/components/calendar/useCalendar.d.ts +24 -0
  16. package/dist/components/color-picker/useColorPickerDrag.d.ts +1 -1
  17. package/dist/components/color-picker/useColorPickerSaturation.d.ts +1 -1
  18. package/dist/components/color-picker/useColorPickerSlider.d.ts +1 -1
  19. package/dist/components/combobox/combobox.d.ts +29 -0
  20. package/dist/components/combobox/comboboxModel.d.ts +4 -0
  21. package/dist/components/combobox/index.d.ts +3 -0
  22. package/dist/components/combobox/index.js +2 -0
  23. package/dist/components/combobox/types.d.ts +43 -0
  24. package/dist/components/combobox/useCombobox.d.ts +45 -0
  25. package/dist/components/date-picker/date-picker.d.ts +33 -0
  26. package/dist/components/date-picker/datePickerModel.d.ts +10 -0
  27. package/dist/components/date-picker/index.d.ts +4 -0
  28. package/dist/components/date-picker/index.js +2 -0
  29. package/dist/components/date-picker/types.d.ts +57 -0
  30. package/dist/components/date-picker/useDatePicker.d.ts +29 -0
  31. package/dist/components/date-picker/useDatePickerValueState.d.ts +21 -0
  32. package/dist/components/dropdown-menu/dropdown-menu-content.d.ts +2 -2
  33. package/dist/components/dropdown-menu/dropdown-menu-sub-content.d.ts +2 -2
  34. package/dist/components/dropdown-menu/dropdown-menu.d.ts +2 -2
  35. package/dist/components/dropdown-menu/dropdownMenuContext.d.ts +7 -18
  36. package/dist/components/dropdown-menu/dropdownMenuInteraction.d.ts +3 -3
  37. package/dist/components/dropdown-menu/dropdownMenuInteractionTypes.d.ts +58 -29
  38. package/dist/components/dropdown-menu/useDropdownMenuDataController.d.ts +4 -3
  39. package/dist/components/dropdown-menu/useDropdownMenuDataRegistration.d.ts +6 -4
  40. package/dist/components/dropdown-menu/useDropdownMenuPresentation.d.ts +3 -4
  41. package/dist/components/dropdown-menu/useDropdownMenuTargetBindings.d.ts +5 -5
  42. package/dist/components/dropzone/dropzone.d.ts +31 -0
  43. package/dist/components/dropzone/dropzoneModel.d.ts +16 -0
  44. package/dist/components/dropzone/index.d.ts +3 -0
  45. package/dist/components/dropzone/index.js +2 -0
  46. package/dist/components/dropzone/types.d.ts +56 -0
  47. package/dist/components/dropzone/useDropzone.d.ts +25 -0
  48. package/dist/components/file-input/file-input.d.ts +29 -0
  49. package/dist/components/file-input/index.d.ts +3 -0
  50. package/dist/components/file-input/index.js +2 -0
  51. package/dist/components/file-input/types.d.ts +37 -0
  52. package/dist/components/file-input/useFileInput.d.ts +15 -0
  53. package/dist/components/floating/index.js +1 -1
  54. package/dist/components/floating/useFloatingPosition.d.ts +1 -13
  55. package/dist/components/floating/useFloatingTargetLifecycle.d.ts +32 -0
  56. package/dist/components/floating/useHoverDisclosure.d.ts +10 -0
  57. package/dist/components/hover-card/hover-card.d.ts +25 -0
  58. package/dist/components/hover-card/index.d.ts +3 -0
  59. package/dist/components/hover-card/index.js +2 -0
  60. package/dist/components/hover-card/types.d.ts +45 -0
  61. package/dist/components/hover-card/useHoverCard.d.ts +22 -0
  62. package/dist/components/hover-card/useHoverCardDisclosure.d.ts +19 -0
  63. package/dist/components/multi-select/index.d.ts +3 -0
  64. package/dist/components/multi-select/index.js +2 -0
  65. package/dist/components/multi-select/multi-select.d.ts +30 -0
  66. package/dist/components/multi-select/multiSelectModel.d.ts +3 -0
  67. package/dist/components/multi-select/types.d.ts +49 -0
  68. package/dist/components/multi-select/useMultiSelect.d.ts +46 -0
  69. package/dist/components/number-input/useNumberInput.d.ts +1 -3
  70. package/dist/components/popover/usePopoverBindings.d.ts +3 -6
  71. package/dist/components/scroll-area/useScrollArea.d.ts +4 -4
  72. package/dist/components/scroll-area/useScrollAreaAttributes.d.ts +3 -3
  73. package/dist/components/scroll-area/useScrollAreaPointer.d.ts +1 -1
  74. package/dist/components/segmented-control/index.d.ts +3 -0
  75. package/dist/components/segmented-control/index.js +2 -0
  76. package/dist/components/segmented-control/segmented-control.d.ts +26 -0
  77. package/dist/components/segmented-control/types.d.ts +47 -0
  78. package/dist/components/segmented-control/useSegmentedControl.d.ts +15 -0
  79. package/dist/components/select/useSelect.d.ts +31 -19
  80. package/dist/components/slider/useRangeSlider.d.ts +1 -1
  81. package/dist/components/slider/useRangeSliderPointer.d.ts +1 -1
  82. package/dist/components/tags-input/index.d.ts +3 -0
  83. package/dist/components/tags-input/index.js +2 -0
  84. package/dist/components/tags-input/tags-input.d.ts +27 -0
  85. package/dist/components/tags-input/tagsInputModel.d.ts +12 -0
  86. package/dist/components/tags-input/types.d.ts +37 -0
  87. package/dist/components/tags-input/useTagsInput.d.ts +23 -0
  88. package/dist/components/tooltip/useTooltipTargetBindings.d.ts +12 -0
  89. package/dist/date-picker.css +49 -0
  90. package/dist/date-picker.js +809 -0
  91. package/dist/dialog.js +9 -20
  92. package/dist/direction.js +6 -0
  93. package/dist/dropdown-menu.css +21 -3
  94. package/dist/dropdown-menu.js +341 -261
  95. package/dist/dropzone.css +135 -0
  96. package/dist/dropzone.js +431 -0
  97. package/dist/file-input.css +135 -0
  98. package/dist/file-input.js +198 -0
  99. package/dist/hover-card.css +80 -0
  100. package/dist/hover-card.js +402 -0
  101. package/dist/index.d.ts +9 -0
  102. package/dist/index.js +14 -3
  103. package/dist/internal/composables/useOverlayLayer.d.ts +12 -0
  104. package/dist/modal.js +1 -1
  105. package/dist/multi-select.css +316 -0
  106. package/dist/multi-select.js +481 -0
  107. package/dist/nativeChoice.js +169 -0
  108. package/dist/number-input.css +18 -18
  109. package/dist/number-input.js +36 -38
  110. package/dist/pagination.js +1 -10
  111. package/dist/pointerSession.js +130 -0
  112. package/dist/popover.css +21 -3
  113. package/dist/popover.js +37 -62
  114. package/dist/scroll-area.js +52 -62
  115. package/dist/segmented-control.css +176 -0
  116. package/dist/segmented-control.js +382 -0
  117. package/dist/select.css +50 -48
  118. package/dist/select.js +121 -271
  119. package/dist/slider.js +70 -129
  120. package/dist/tags-input.css +197 -0
  121. package/dist/tags-input.js +380 -0
  122. package/dist/tooltip.js +35 -30
  123. package/dist/useEditableOptionList.js +216 -0
  124. package/dist/useFlatOptionCollection.js +134 -0
  125. package/dist/useFloatingPosition.js +4 -160
  126. package/dist/useFloatingTargetLifecycle.js +127 -0
  127. package/dist/useFormControl.js +1 -0
  128. package/dist/{floating.js → useHoverDisclosure.js} +338 -421
  129. package/dist/useNativeChoiceTransaction.js +46 -0
  130. package/dist/useNativeFileSelection.js +86 -0
  131. package/dist/useOverlayZIndex.js +246 -15
  132. package/dist/utils/date.d.ts +13 -0
  133. package/dist/utils/dateAvailability.d.ts +7 -0
  134. package/dist/utils/dom/ancestry.d.ts +1 -0
  135. package/dist/utils/dom/direction.d.ts +2 -0
  136. package/dist/utils/dom/files.d.ts +3 -0
  137. package/dist/utils/dom/nativeChoice.d.ts +17 -0
  138. package/dist/utils/dom/pointerSession.d.ts +20 -0
  139. package/dist/utils/dom/scroll.d.ts +2 -1
  140. package/dist/utils/optionFilter.d.ts +5 -0
  141. package/docs/public-floating-api.md +7 -4
  142. package/docs/public-styles-api.md +25 -12
  143. package/package.json +39 -3
  144. package/src/styles/_mixins.scss +26 -0
  145. package/src/styles/styles-manifest.json +1 -2
  146. package/dist/components/floating/hoverDisclosureInteractionModel.d.ts +0 -42
  147. package/dist/components/floating/useHoverDisclosureInteractions.d.ts +0 -32
  148. package/dist/components/floating/useHoverDisclosureOpenState.d.ts +0 -25
  149. package/dist/components/floating/useHoverDisclosureTargetBinding.d.ts +0 -27
  150. package/dist/components/select/useSelectNativeControl.d.ts +0 -9
  151. package/dist/components/select/useSelectNativeValue.d.ts +0 -9
  152. package/dist/pointer.js +0 -9
  153. package/dist/utils/dom/pointer.d.ts +0 -2
@@ -0,0 +1,410 @@
1
+ import './combobox.css';
2
+ import { t as useStylesApi } from "./styles-api.js";
3
+ import { n as toPresenceAttribute } from "./attributes.js";
4
+ import { t as bem } from "./bem.js";
5
+ import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
6
+ import { t as x_default } from "./x.js";
7
+ import { o as splitCompatibilityAttributes, t as composeEventHandlers } from "./attributes2.js";
8
+ import { t as useControlState } from "./useControlState.js";
9
+ import { t as resolveHTMLElementRef } from "./componentRef.js";
10
+ import { t as useFloatingPosition } from "./useFloatingPosition.js";
11
+ import { r as chevrons_up_down_default } from "./useFlatOptionCollection.js";
12
+ import { t as scroll_area_default } from "./scroll-area.js";
13
+ import { t as useEditableOptionList } from "./useEditableOptionList.js";
14
+ import { i as useHiddenSelectChoiceTransaction, n as createSingleNativeChoiceAdapter } from "./nativeChoice.js";
15
+ import { VaporTransition, child, computed, createComponent, createFor, createIf, createSlot, createTemplateRefSetter, defineVaporComponent, extend, next, on, ref, renderEffect, setDynamicProps, setInsertionState, setProp, setTemplateRefBinding, setText, setValue, template, toDisplayString, txt, unref, useId, withModifiers } from "vue";
16
+ //#region src/components/combobox/comboboxModel.ts
17
+ function hasComboboxValue(value) {
18
+ return value !== null;
19
+ }
20
+ function getComboboxDisplayLabel(options, value) {
21
+ if (!hasComboboxValue(value)) return "";
22
+ return options?.find((option) => option.value === value)?.label ?? "";
23
+ }
24
+ //#endregion
25
+ //#region src/components/combobox/useCombobox.ts
26
+ function useComboboxTransaction(props, emitUpdate, inputRef, onFormReset) {
27
+ const transaction = useHiddenSelectChoiceTransaction({
28
+ value: {
29
+ modelValue: () => props.modelValue,
30
+ defaultValue: () => props.defaultValue ?? null,
31
+ onChange: emitUpdate
32
+ },
33
+ native: {
34
+ adapter: createSingleNativeChoiceAdapter({
35
+ emptyValue: null,
36
+ options: () => props.options
37
+ }),
38
+ className: "rp-combobox__native",
39
+ focusVisible: () => inputRef.value?.focus(),
40
+ validationMessage: () => props.validationMessage
41
+ },
42
+ onFormReset
43
+ });
44
+ return {
45
+ nativeSelectRef: transaction.nativeSelectRef,
46
+ nativeSelectAttrs: transaction.nativeSelectAttrs,
47
+ requestValueUpdate: transaction.requestValueUpdate,
48
+ selectedValue: transaction.value
49
+ };
50
+ }
51
+ function useCombobox(props, callbacks) {
52
+ const rootRef = ref(null);
53
+ const inputRef = ref(null);
54
+ const dropdownRef = ref(null);
55
+ const generatedId = useId();
56
+ const comboboxId = props.id ?? generatedId;
57
+ const transaction = useComboboxTransaction(props, callbacks.valueChange, inputRef, resetAfterFormReset);
58
+ const selectedValue = transaction.selectedValue;
59
+ const control = useControlState(props);
60
+ const displayLabel = computed(() => getComboboxDisplayLabel(props.options, selectedValue.value));
61
+ const optionList = useEditableOptionList({
62
+ baseId: comboboxId,
63
+ clearable: () => Boolean(props.clearable),
64
+ disabled: () => control.disabled,
65
+ filter: () => props.filter,
66
+ getKey: (option) => option.value,
67
+ inputRef,
68
+ isDisabled: (option) => Boolean(option.disabled),
69
+ items: () => props.options,
70
+ onSearch: callbacks.search,
71
+ rootRef,
72
+ selection: {
73
+ kind: "single",
74
+ clear() {
75
+ if (hasComboboxValue(selectedValue.value)) transaction.requestValueUpdate(null);
76
+ },
77
+ displayValue: () => displayLabel.value,
78
+ hasSelection: () => hasComboboxValue(selectedValue.value),
79
+ isSelected: (option) => option.value === selectedValue.value,
80
+ select: (option) => transaction.requestValueUpdate(option.value)
81
+ }
82
+ });
83
+ const { activeDescendantId, canClear, isOpen, renderedOptions, searchValue, visibleOptions } = optionList.state;
84
+ const { listbox: listboxId, popup: popupId } = optionList.ids;
85
+ const floating = useFloatingPosition({
86
+ reference: rootRef,
87
+ floating: dropdownRef,
88
+ open: isOpen,
89
+ placement: "bottom-start"
90
+ });
91
+ const placementSide = computed(() => floating.actualPlacement.value.split("-")[0]);
92
+ const rootClass = computed(() => bem("rp-combobox", {
93
+ open: isOpen.value,
94
+ [`size-${props.size}`]: Boolean(props.size),
95
+ [`radius-${props.radius}`]: Boolean(props.radius),
96
+ disabled: control.disabled,
97
+ invalid: control.invalid
98
+ }));
99
+ function setDropdownElement(elementRef) {
100
+ resolveHTMLElementRef(elementRef, popupId, (resolved) => {
101
+ dropdownRef.value = resolved;
102
+ });
103
+ }
104
+ function resetAfterFormReset() {
105
+ optionList.actions.resetAfterFormReset();
106
+ }
107
+ return {
108
+ templateRefs: {
109
+ root: rootRef,
110
+ input: inputRef,
111
+ native: transaction.nativeSelectRef
112
+ },
113
+ nativeSelectAttrs: transaction.nativeSelectAttrs,
114
+ isOpen,
115
+ popupId,
116
+ listboxId,
117
+ control,
118
+ visibleOptions,
119
+ renderedOptions,
120
+ activeDescendantId,
121
+ rootClass,
122
+ floatingStyle: floating.floatingStyle,
123
+ actualPlacement: floating.actualPlacement,
124
+ placementSide,
125
+ searchValue,
126
+ displayLabel,
127
+ canClear,
128
+ setDropdownElement,
129
+ toggle: optionList.actions.toggle,
130
+ selectOption: optionList.actions.selectOption,
131
+ clearSelection: optionList.actions.clearSelection,
132
+ onOptionMouseenter: optionList.handlers.onOptionMouseenter,
133
+ onFocusout: optionList.handlers.onFocusout,
134
+ onInput: optionList.handlers.onInput,
135
+ onInputFocus: optionList.handlers.onInputFocus,
136
+ onInputClick: optionList.handlers.onInputClick,
137
+ onInputKeydown: optionList.handlers.onInputKeydown
138
+ };
139
+ }
140
+ //#endregion
141
+ //#region src/components/combobox/combobox.vue?vue&type=script&setup=true&vapor=true&lang.ts
142
+ var t0 = template("<option data-v-b9882cdc> ");
143
+ var t1 = template("<button data-v-b9882cdc></button>");
144
+ var t2 = template("No options", 2);
145
+ var t3 = template("<div data-v-b9882cdc>");
146
+ var t4 = template(" ");
147
+ var t5 = template("<div data-v-b9882cdc><select data-v-b9882cdc><option data-v-b9882cdc value></option></select><input data-v-b9882cdc><span data-v-b9882cdc><button data-v-b9882cdc>", 1);
148
+ //#endregion
149
+ //#region src/components/combobox/combobox.vue
150
+ var combobox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
151
+ name: "RpCombobox",
152
+ inheritAttrs: false,
153
+ __name: "combobox",
154
+ props: {
155
+ id: {},
156
+ name: {},
157
+ form: {},
158
+ modelValue: { default: void 0 },
159
+ defaultValue: { default: null },
160
+ options: { default: () => [] },
161
+ filter: {
162
+ type: [Function, Boolean],
163
+ default: void 0
164
+ },
165
+ size: {},
166
+ radius: {},
167
+ placeholder: { default: "Search..." },
168
+ clearable: {
169
+ type: Boolean,
170
+ default: false
171
+ },
172
+ clearLabel: { default: "Clear selection" },
173
+ toggleLabel: { default: "Toggle options" },
174
+ disabled: {
175
+ type: Boolean,
176
+ default: void 0
177
+ },
178
+ required: {
179
+ type: Boolean,
180
+ default: void 0
181
+ },
182
+ invalid: {
183
+ type: Boolean,
184
+ default: void 0
185
+ },
186
+ ariaLabel: {},
187
+ describedby: {},
188
+ labelledby: {},
189
+ inputAttrs: {},
190
+ validationMessage: {},
191
+ classNames: {},
192
+ styles: {}
193
+ },
194
+ emits: ["update:modelValue", "search"],
195
+ setup(__props, { expose: __expose, emit: __emit }) {
196
+ const props = __props;
197
+ const emit = __emit;
198
+ const { templateRefs, nativeSelectAttrs, isOpen, popupId, listboxId, control, visibleOptions, renderedOptions, activeDescendantId, rootClass, floatingStyle, actualPlacement, placementSide, searchValue, canClear, setDropdownElement, toggle, selectOption, clearSelection, onOptionMouseenter, onFocusout, onInput, onInputFocus, onInputClick, onInputKeydown } = useCombobox(props, {
199
+ valueChange: (value) => emit("update:modelValue", value),
200
+ search: (value) => emit("search", value)
201
+ });
202
+ const { getPartAttrs, getRootAttrs } = useStylesApi(props, "root");
203
+ const rootAttrs = computed(() => getRootAttrs({
204
+ class: rootClass.value,
205
+ onFocusout,
206
+ "data-state": isOpen.value ? "open" : "closed",
207
+ "data-disabled": toPresenceAttribute(control.disabled),
208
+ "data-invalid": toPresenceAttribute(control.invalid)
209
+ }));
210
+ const contentAttrs = computed(() => ({
211
+ ...getPartAttrs("content", {
212
+ class: "rp-combobox__dropdown",
213
+ style: floatingStyle.value
214
+ }),
215
+ "data-placement": actualPlacement.value,
216
+ "data-side": placementSide.value
217
+ }));
218
+ const visibleInputAttrs = computed(() => {
219
+ const attrs = props.inputAttrs ?? {};
220
+ const { compatibilityClass, compatibilityStyle, forwardedAttributes } = splitCompatibilityAttributes(attrs);
221
+ return {
222
+ ...forwardedAttributes,
223
+ ...getPartAttrs("input", {
224
+ class: "rp-combobox__input",
225
+ compatibilityClass,
226
+ compatibilityStyle
227
+ }),
228
+ id: control.id,
229
+ name: void 0,
230
+ form: "",
231
+ type: "text",
232
+ value: searchValue.value,
233
+ placeholder: props.placeholder,
234
+ disabled: control.disabled || void 0,
235
+ required: void 0,
236
+ autocomplete: forwardedAttributes.autocomplete ?? "off",
237
+ role: "combobox",
238
+ "aria-autocomplete": "list",
239
+ "aria-expanded": isOpen.value,
240
+ "aria-haspopup": "listbox",
241
+ "aria-activedescendant": activeDescendantId.value,
242
+ "aria-controls": listboxId,
243
+ "aria-disabled": control.disabled || void 0,
244
+ "aria-invalid": control.invalid || void 0,
245
+ "aria-required": control.required || void 0,
246
+ "aria-label": props.ariaLabel || void 0,
247
+ "aria-labelledby": control.ariaLabelledby,
248
+ "aria-describedby": control.ariaDescribedby,
249
+ "data-state": isOpen.value ? "open" : "closed",
250
+ "data-disabled": toPresenceAttribute(control.disabled),
251
+ "data-invalid": toPresenceAttribute(control.invalid),
252
+ onInput: composeEventHandlers(onInput, attrs.onInput),
253
+ onFocus: composeEventHandlers(onInputFocus, attrs.onFocus),
254
+ onClick: composeEventHandlers(onInputClick, attrs.onClick),
255
+ onKeydown: composeEventHandlers(onInputKeydown, attrs.onKeydown)
256
+ };
257
+ });
258
+ __expose({
259
+ nativeElement: templateRefs.native,
260
+ inputElement: templateRefs.input,
261
+ focus: () => templateRefs.input.value?.focus()
262
+ });
263
+ const _setTemplateRef = createTemplateRefSetter();
264
+ const n28 = t5();
265
+ const n3 = child(n28);
266
+ const n4 = next(n3, 1);
267
+ const n11 = next(n4, 2);
268
+ const n10 = child(n11, 1);
269
+ renderEffect(() => {
270
+ const _control = unref(control);
271
+ setDynamicProps(n28, [rootAttrs.value]);
272
+ setDynamicProps(n3, [unref(nativeSelectAttrs), {
273
+ name: __props.name,
274
+ form: _control.form,
275
+ disabled: _control.disabled || void 0,
276
+ required: _control.required || void 0,
277
+ tabindex: "-1",
278
+ "aria-hidden": "true"
279
+ }]);
280
+ });
281
+ setInsertionState(n3, null, 1);
282
+ createFor(() => __props.options, (_for_item0) => {
283
+ const n2 = t0();
284
+ const x2 = txt(n2);
285
+ renderEffect(() => {
286
+ const _option = _for_item0.value;
287
+ setValue(n2, String(_option.value));
288
+ setProp(n2, "disabled", _option.disabled || void 0);
289
+ setText(x2, toDisplayString(_option.label));
290
+ });
291
+ return n2;
292
+ }, (option) => option.value, 8);
293
+ renderEffect(() => {
294
+ const _templateRefs = unref(templateRefs);
295
+ _setTemplateRef(n3, _templateRefs.native);
296
+ setDynamicProps(n4, [visibleInputAttrs.value]);
297
+ _setTemplateRef(n4, _templateRefs.input);
298
+ setDynamicProps(n11, [unref(getPartAttrs)("indicator", { class: "rp-combobox__indicator" })]);
299
+ });
300
+ setInsertionState(n11, 0);
301
+ createIf(() => unref(canClear), () => {
302
+ const n8 = t1();
303
+ renderEffect(() => setDynamicProps(n8, [
304
+ { type: "button" },
305
+ unref(getPartAttrs)("clear", { class: "rp-combobox__clear" }),
306
+ {
307
+ "aria-label": __props.clearLabel,
308
+ tabindex: "-1"
309
+ }
310
+ ]));
311
+ setInsertionState(n8, null, 0);
312
+ createComponent(unref(x_default));
313
+ on(n8, "mousedown", withModifiers(() => {}, ["prevent"]));
314
+ on(n8, "click", withModifiers((e) => unref(clearSelection)(e), ["stop"]));
315
+ return n8;
316
+ });
317
+ renderEffect(() => setDynamicProps(n10, [
318
+ { type: "button" },
319
+ unref(getPartAttrs)("toggle", { class: "rp-combobox__toggle" }),
320
+ {
321
+ "aria-label": __props.toggleLabel,
322
+ "aria-expanded": unref(isOpen),
323
+ disabled: unref(control).disabled || void 0,
324
+ tabindex: "-1"
325
+ }
326
+ ]));
327
+ setInsertionState(n10, null, 0);
328
+ createComponent(unref(chevrons_up_down_default));
329
+ on(n10, "mousedown", withModifiers(() => {}, ["prevent"]));
330
+ on(n10, "click", withModifiers((e) => unref(toggle)(e), ["stop"]));
331
+ setInsertionState(n28, null, 3);
332
+ createComponent(VaporTransition, { name: "rp-combobox-dropdown" }, extend(() => {
333
+ return createIf(() => unref(isOpen), () => {
334
+ const n26 = createComponent(scroll_area_default, { $: [() => contentAttrs.value, {
335
+ id: () => unref(popupId),
336
+ embedded: "",
337
+ type: "auto",
338
+ scrollbars: "y",
339
+ "viewport-attrs": () => ({
340
+ role: "listbox",
341
+ tabindex: -1
342
+ }),
343
+ "data-state": () => unref(isOpen) ? "open" : "closed"
344
+ }] }, extend(() => {
345
+ return [createIf(() => unref(visibleOptions).length === 0, () => {
346
+ const n19 = t3();
347
+ renderEffect(() => setDynamicProps(n19, [unref(getPartAttrs)("empty", { class: "rp-combobox__empty" })]));
348
+ setInsertionState(n19, null, 0);
349
+ createSlot("empty", { searchValue: () => unref(searchValue) }, () => {
350
+ return t2();
351
+ }, 1);
352
+ return n19;
353
+ }, null, 129), createFor(() => unref(renderedOptions), (_for_item0) => {
354
+ const n25 = t3();
355
+ renderEffect(() => {
356
+ const _optionState = _for_item0.value;
357
+ const _optionState_selected = _optionState.selected;
358
+ const _optionState_disabled = _optionState.disabled;
359
+ setDynamicProps(n25, [{
360
+ id: _optionState.id,
361
+ role: "option",
362
+ "aria-selected": _optionState_selected,
363
+ "aria-disabled": _optionState_disabled || void 0,
364
+ "data-selected": unref(toPresenceAttribute)(_optionState.selected),
365
+ "data-highlighted": unref(toPresenceAttribute)(_optionState.active),
366
+ "data-disabled": unref(toPresenceAttribute)(_optionState.disabled)
367
+ }, unref(getPartAttrs)("option", { class: ["rp-combobox__option", {
368
+ "rp-combobox__option--selected": _optionState_selected,
369
+ "rp-combobox__option--highlighted": _optionState.active,
370
+ "rp-combobox__option--disabled": _optionState_disabled
371
+ }] })]);
372
+ });
373
+ setInsertionState(n25, null, 0);
374
+ createSlot("option", {
375
+ option: () => _for_item0.value.option,
376
+ selected: () => _for_item0.value.selected,
377
+ highlighted: () => _for_item0.value.active
378
+ }, () => {
379
+ const n24 = t4();
380
+ renderEffect(() => setText(n24, toDisplayString(_for_item0.value.option.label)));
381
+ return n24;
382
+ }, 1);
383
+ on(n25, "mousedown", withModifiers(() => {}, ["prevent"]));
384
+ on(n25, "click", () => unref(selectOption)(_for_item0.value.option));
385
+ on(n25, "mouseenter", () => unref(onOptionMouseenter)(_for_item0.value.option));
386
+ return n25;
387
+ }, (optionState) => optionState.option.value, 40)];
388
+ }, { _: 8 }));
389
+ setTemplateRefBinding(n26, () => setDropdownElement, _setTemplateRef, void 0, "setDropdownElement");
390
+ return n26;
391
+ }, null, 129);
392
+ }, { _: 8 }));
393
+ setTemplateRefBinding(n28, () => unref(templateRefs).root);
394
+ return n28;
395
+ }
396
+ }), [["__scopeId", "data-v-b9882cdc"]]);
397
+ //#endregion
398
+ //#region src/components/combobox/types.ts
399
+ var comboboxParts = [
400
+ "root",
401
+ "input",
402
+ "indicator",
403
+ "clear",
404
+ "toggle",
405
+ "content",
406
+ "option",
407
+ "empty"
408
+ ];
409
+ //#endregion
410
+ export { combobox_default as n, comboboxParts as t };
@@ -0,0 +1,30 @@
1
+ import { CalendarDaySlotProps, CalendarProps } from './types.js';
2
+ declare const __VLS_export: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
3
+ props: import('vue').PublicProps & __VLS_PrettifyLocal<CalendarProps & {
4
+ "onUpdate:modelValue"?: ((value: Date) => any) | undefined;
5
+ onChange?: ((value: Date) => any) | undefined;
6
+ "onUpdate:month"?: ((month: Date) => any) | undefined;
7
+ }> & (typeof globalThis extends {
8
+ __VLS_PROPS_FALLBACK: infer P;
9
+ } ? P : {});
10
+ expose: (exposed: import('vue').ShallowUnwrapRef<{
11
+ nativeElement: import('vue').Ref<HTMLElement | null, HTMLElement | null>;
12
+ focus(): void;
13
+ }>) => void;
14
+ attrs: any;
15
+ slots: {
16
+ day?(props: CalendarDaySlotProps): unknown;
17
+ 'previous-icon'?(): unknown;
18
+ 'next-icon'?(): unknown;
19
+ };
20
+ emit: ((evt: "update:modelValue", value: Date) => void) & ((evt: "change", value: Date) => void) & ((evt: "update:month", month: Date) => void);
21
+ }>) => import('vue').VNode & {
22
+ __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
23
+ };
24
+ declare const _default: typeof __VLS_export;
25
+ export default _default;
26
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
27
+ [K in keyof T]: T[K];
28
+ } : {
29
+ [K in keyof T as K]: T[K];
30
+ }) & {};
@@ -0,0 +1,49 @@
1
+ import { DateAvailabilityOptions } from '../../utils/dateAvailability.js';
2
+ import { CalendarDay, CalendarWeekday, CalendarWeekdayFormat } from './types.js';
3
+ interface CalendarBehaviorOptions extends DateAvailabilityOptions {
4
+ month: Date;
5
+ selectedDate: Date | null;
6
+ today: Date;
7
+ firstDayOfWeek?: number;
8
+ weekdayFormat?: CalendarWeekdayFormat;
9
+ locale?: string;
10
+ monthFormat?: Intl.DateTimeFormatOptions;
11
+ fixedWeeks?: boolean;
12
+ hideOutsideDates?: boolean;
13
+ disabled?: boolean;
14
+ }
15
+ type CalendarBehaviorAction = {
16
+ type: 'resolve-focusable';
17
+ focusedDate: Date;
18
+ } | {
19
+ type: 'align-month';
20
+ previousMonth: Date;
21
+ focusedDate: Date;
22
+ } | {
23
+ type: 'navigate-month';
24
+ amount: number;
25
+ focusedDate: Date;
26
+ } | {
27
+ type: 'move-focus';
28
+ date: Date;
29
+ key: string;
30
+ shiftKey?: boolean;
31
+ };
32
+ interface CalendarBehaviorTransition {
33
+ focusedDate: Date;
34
+ visibleMonth?: Date;
35
+ }
36
+ interface CalendarBehaviorView {
37
+ days: CalendarDay[];
38
+ weeks: CalendarDay[][];
39
+ weekdays: CalendarWeekday[];
40
+ monthLabel: string;
41
+ previousDisabled: boolean;
42
+ nextDisabled: boolean;
43
+ }
44
+ interface CalendarBehavior {
45
+ view: CalendarBehaviorView;
46
+ decide: (action: CalendarBehaviorAction) => CalendarBehaviorTransition | null;
47
+ }
48
+ export declare function createCalendarBehavior(options: CalendarBehaviorOptions): CalendarBehavior;
49
+ export {};
@@ -0,0 +1,3 @@
1
+ export { default as Calendar } from './calendar.js';
2
+ export { calendarParts, calendarRadiuses, calendarSizes, calendarWeekdayFormats } from './types.js';
3
+ export type { CalendarDay, CalendarDaySlotProps, CalendarDisabledDates, CalendarPart, CalendarProps, CalendarRadius, CalendarSize, CalendarWeekday, CalendarWeekdayFormat, } from './types.js';
@@ -0,0 +1,3 @@
1
+ import { t as calendar_default } from "../../calendar.js";
2
+ import { i as calendarWeekdayFormats, n as calendarRadiuses, r as calendarSizes, t as calendarParts } from "../../calendar2.js";
3
+ export { calendar_default as Calendar, calendarParts, calendarRadiuses, calendarSizes, calendarWeekdayFormats };
@@ -0,0 +1,53 @@
1
+ import { StylesApiProps } from '../../styles-api.js';
2
+ import { DisabledDateRule } from '../../utils/dateAvailability.js';
3
+ export declare const calendarParts: readonly ["root", "header", "previousControl", "monthLabel", "nextControl", "weekdays", "weekday", "grid", "week", "dayCell", "day"];
4
+ export declare const calendarSizes: readonly ["xs", "sm", "md", "lg", "xl"];
5
+ export declare const calendarRadiuses: readonly ["none", "xs", "sm", "md", "lg", "xl", "full"];
6
+ export declare const calendarWeekdayFormats: readonly ["narrow", "short", "long"];
7
+ export type CalendarPart = (typeof calendarParts)[number];
8
+ export type CalendarSize = (typeof calendarSizes)[number];
9
+ export type CalendarRadius = (typeof calendarRadiuses)[number];
10
+ export type CalendarWeekdayFormat = (typeof calendarWeekdayFormats)[number];
11
+ export type CalendarDisabledDates = DisabledDateRule;
12
+ export interface CalendarDay {
13
+ date: Date;
14
+ key: string;
15
+ label: number;
16
+ ariaLabel: string;
17
+ outside: boolean;
18
+ hidden: boolean;
19
+ selected: boolean;
20
+ today: boolean;
21
+ disabled: boolean;
22
+ }
23
+ export interface CalendarWeekday {
24
+ key: number;
25
+ label: string;
26
+ ariaLabel: string;
27
+ }
28
+ export interface CalendarDaySlotProps extends CalendarDay {
29
+ select: () => void;
30
+ }
31
+ export interface CalendarProps extends StylesApiProps<CalendarPart> {
32
+ id?: string;
33
+ modelValue?: Date | null;
34
+ defaultValue?: Date | null;
35
+ month?: Date;
36
+ defaultMonth?: Date;
37
+ locale?: string;
38
+ firstDayOfWeek?: number;
39
+ weekdayFormat?: CalendarWeekdayFormat;
40
+ monthFormat?: Intl.DateTimeFormatOptions;
41
+ min?: Date;
42
+ max?: Date;
43
+ disabledDates?: CalendarDisabledDates;
44
+ fixedWeeks?: boolean;
45
+ hideOutsideDates?: boolean;
46
+ disabled?: boolean;
47
+ readonly?: boolean;
48
+ size?: CalendarSize;
49
+ radius?: CalendarRadius;
50
+ ariaLabel?: string;
51
+ previousLabel?: string;
52
+ nextLabel?: string;
53
+ }
@@ -0,0 +1,24 @@
1
+ import { CalendarDay, CalendarProps } from './types.js';
2
+ interface CalendarEmitters {
3
+ value: (value: Date) => void;
4
+ month: (month: Date) => void;
5
+ change: (value: Date) => void;
6
+ }
7
+ export declare function useCalendar(props: Readonly<CalendarProps>, emit: CalendarEmitters): {
8
+ rootRef: import('vue').Ref<HTMLElement | null, HTMLElement | null>;
9
+ selectedDate: import('vue').ComputedRef<Date | null>;
10
+ visibleMonth: import('vue').ComputedRef<Date>;
11
+ days: import('vue').ComputedRef<CalendarDay[]>;
12
+ weeks: import('vue').ComputedRef<CalendarDay[][]>;
13
+ weekdays: import('vue').ComputedRef<import('./types.js').CalendarWeekday[]>;
14
+ monthLabel: import('vue').ComputedRef<string>;
15
+ rootClass: import('vue').ComputedRef<string[]>;
16
+ previousDisabled: import('vue').ComputedRef<boolean>;
17
+ nextDisabled: import('vue').ComputedRef<boolean>;
18
+ focusableDate: import('vue').ComputedRef<Date | null>;
19
+ selectDate: (day: CalendarDay) => void;
20
+ navigateMonth: (amount: number) => void;
21
+ onDayKeydown: (event: KeyboardEvent, day: CalendarDay) => void;
22
+ onDayFocus: (day: CalendarDay) => void;
23
+ };
24
+ export {};
@@ -11,6 +11,6 @@ interface UseColorPickerDragOptions {
11
11
  updateFromPointer: (pointer: ColorPickerPointerCoordinates, rect: DOMRect) => void;
12
12
  }
13
13
  export declare function useColorPickerDrag({ target, focusTarget, readonly, isGeometryValid, updateFromPointer, }: UseColorPickerDragOptions): {
14
- onPointerDown: (event: PointerEvent) => void;
14
+ onPointerDown: (event: PointerEvent) => boolean;
15
15
  };
16
16
  export {};
@@ -15,7 +15,7 @@ export declare function useColorPickerSaturation({ modelValue, hue, readonly, on
15
15
  value: number;
16
16
  }>;
17
17
  normalizedHue: import('vue').ComputedRef<number>;
18
- onPointerDown: (event: PointerEvent) => void;
18
+ onPointerDown: (event: PointerEvent) => boolean;
19
19
  onAxisKeydown: (event: KeyboardEvent, axis: ColorPickerAxis) => void;
20
20
  onAxisInput: (event: Event, axis: ColorPickerAxis) => void;
21
21
  };
@@ -14,7 +14,7 @@ export declare function useColorPickerSlider({ variant, value, readonly, onChang
14
14
  value: number;
15
15
  outputValue: number;
16
16
  }>;
17
- onPointerDown: (event: PointerEvent) => void;
17
+ onPointerDown: (event: PointerEvent) => boolean;
18
18
  onKeydown: (event: KeyboardEvent) => void;
19
19
  };
20
20
  export {};
@@ -0,0 +1,29 @@
1
+ import { ComboboxEmptySlotProps, ComboboxOptionSlotProps, ComboboxProps } from './types.js';
2
+ declare const __VLS_export: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
3
+ props: import('vue').PublicProps & __VLS_PrettifyLocal<ComboboxProps & {
4
+ onSearch?: ((searchValue: string) => any) | undefined;
5
+ "onUpdate:modelValue"?: ((value: string | number | null) => any) | undefined;
6
+ }> & (typeof globalThis extends {
7
+ __VLS_PROPS_FALLBACK: infer P;
8
+ } ? P : {});
9
+ expose: (exposed: import('vue').ShallowUnwrapRef<{
10
+ nativeElement: import('vue').Ref<HTMLSelectElement | null, HTMLSelectElement | null>;
11
+ inputElement: import('vue').Ref<HTMLInputElement | null, HTMLInputElement | null>;
12
+ focus: () => void | undefined;
13
+ }>) => void;
14
+ attrs: any;
15
+ slots: {
16
+ option?(props: ComboboxOptionSlotProps): unknown;
17
+ empty?(props: ComboboxEmptySlotProps): unknown;
18
+ };
19
+ emit: ((evt: "search", searchValue: string) => void) & ((evt: "update:modelValue", value: string | number | null) => void);
20
+ }>) => import('vue').VNode & {
21
+ __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
22
+ };
23
+ declare const _default: typeof __VLS_export;
24
+ export default _default;
25
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
26
+ [K in keyof T]: T[K];
27
+ } : {
28
+ [K in keyof T as K]: T[K];
29
+ }) & {};
@@ -0,0 +1,4 @@
1
+ import { ComboboxOption } from './types.js';
2
+ export type ComboboxValue = string | number | null;
3
+ export declare function hasComboboxValue(value: ComboboxValue): value is string | number;
4
+ export declare function getComboboxDisplayLabel(options: readonly ComboboxOption[] | undefined, value: ComboboxValue): string;
@@ -0,0 +1,3 @@
1
+ export { default as Combobox } from './combobox.js';
2
+ export { comboboxParts } from './types.js';
3
+ export type { ComboboxEmptySlotProps, ComboboxFilter, ComboboxOption, ComboboxOptionSlotProps, ComboboxPart, ComboboxProps, ComboboxRadius, ComboboxSize, } from './types.js';
@@ -0,0 +1,2 @@
1
+ import { n as combobox_default, t as comboboxParts } from "../../combobox.js";
2
+ export { combobox_default as Combobox, comboboxParts };