ropav 0.1.7 → 0.1.9

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 (167) hide show
  1. package/README.md +5 -4
  2. package/dist/ancestry.js +136 -0
  3. package/dist/calendar.css +184 -0
  4. package/dist/calendar.js +739 -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 +56 -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 +59 -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/slider/useSlider.d.ts +1 -1
  83. package/dist/components/slider/useSliderPointer.d.ts +15 -0
  84. package/dist/components/slider/useSliderValueState.d.ts +1 -0
  85. package/dist/components/tags-input/index.d.ts +3 -0
  86. package/dist/components/tags-input/index.js +2 -0
  87. package/dist/components/tags-input/tags-input.d.ts +27 -0
  88. package/dist/components/tags-input/tagsInputModel.d.ts +12 -0
  89. package/dist/components/tags-input/types.d.ts +37 -0
  90. package/dist/components/tags-input/useTagsInput.d.ts +23 -0
  91. package/dist/components/toolbar/index.d.ts +3 -0
  92. package/dist/components/toolbar/index.js +2 -0
  93. package/dist/components/toolbar/toolbar.d.ts +24 -0
  94. package/dist/components/toolbar/types.d.ts +12 -0
  95. package/dist/components/toolbar/useToolbar.d.ts +7 -0
  96. package/dist/components/tooltip/useTooltipTargetBindings.d.ts +12 -0
  97. package/dist/date-picker.css +49 -0
  98. package/dist/date-picker.js +811 -0
  99. package/dist/dialog.js +9 -20
  100. package/dist/direction.js +6 -0
  101. package/dist/dropdown-menu.css +21 -3
  102. package/dist/dropdown-menu.js +341 -261
  103. package/dist/dropzone.css +135 -0
  104. package/dist/dropzone.js +431 -0
  105. package/dist/file-input.css +135 -0
  106. package/dist/file-input.js +198 -0
  107. package/dist/focusNavigation.js +12 -6
  108. package/dist/hover-card.css +80 -0
  109. package/dist/hover-card.js +402 -0
  110. package/dist/index.d.ts +10 -0
  111. package/dist/index.js +15 -3
  112. package/dist/internal/composables/useOverlayLayer.d.ts +12 -0
  113. package/dist/modal.js +1 -1
  114. package/dist/multi-select.css +316 -0
  115. package/dist/multi-select.js +481 -0
  116. package/dist/nativeChoice.js +169 -0
  117. package/dist/number-input.css +18 -18
  118. package/dist/number-input.js +36 -38
  119. package/dist/pagination.js +1 -10
  120. package/dist/pointerSession.js +130 -0
  121. package/dist/popover.css +21 -3
  122. package/dist/popover.js +37 -62
  123. package/dist/scroll-area.js +52 -62
  124. package/dist/segmented-control.css +176 -0
  125. package/dist/segmented-control.js +382 -0
  126. package/dist/select.css +50 -48
  127. package/dist/select.js +121 -271
  128. package/dist/slider.css +78 -69
  129. package/dist/slider.js +161 -145
  130. package/dist/tags-input.css +197 -0
  131. package/dist/tags-input.js +380 -0
  132. package/dist/toolbar.css +15 -0
  133. package/dist/toolbar.js +143 -0
  134. package/dist/tooltip.js +35 -30
  135. package/dist/useEditableOptionList.js +216 -0
  136. package/dist/useFlatOptionCollection.js +134 -0
  137. package/dist/useFloatingPosition.js +4 -160
  138. package/dist/useFloatingTargetLifecycle.js +127 -0
  139. package/dist/useFormControl.js +1 -0
  140. package/dist/{floating.js → useHoverDisclosure.js} +338 -421
  141. package/dist/useNativeChoiceTransaction.js +46 -0
  142. package/dist/useNativeFileSelection.js +86 -0
  143. package/dist/useOverlayZIndex.js +246 -15
  144. package/dist/utils/date.d.ts +13 -0
  145. package/dist/utils/dateAvailability.d.ts +7 -0
  146. package/dist/utils/dom/ancestry.d.ts +1 -0
  147. package/dist/utils/dom/direction.d.ts +2 -0
  148. package/dist/utils/dom/files.d.ts +3 -0
  149. package/dist/utils/dom/focusNavigation.d.ts +4 -1
  150. package/dist/utils/dom/nativeChoice.d.ts +17 -0
  151. package/dist/utils/dom/pointerSession.d.ts +20 -0
  152. package/dist/utils/dom/scroll.d.ts +2 -1
  153. package/dist/utils/optionFilter.d.ts +5 -0
  154. package/docs/public-floating-api.md +7 -4
  155. package/docs/public-styles-api.md +28 -12
  156. package/package.json +68 -40
  157. package/src/styles/_mixins.scss +26 -0
  158. package/src/styles/styles-manifest.json +1 -2
  159. package/dist/components/floating/hoverDisclosureInteractionModel.d.ts +0 -42
  160. package/dist/components/floating/useHoverDisclosureInteractions.d.ts +0 -32
  161. package/dist/components/floating/useHoverDisclosureOpenState.d.ts +0 -25
  162. package/dist/components/floating/useHoverDisclosureTargetBinding.d.ts +0 -27
  163. package/dist/components/select/useSelectNativeControl.d.ts +0 -9
  164. package/dist/components/select/useSelectNativeValue.d.ts +0 -9
  165. package/dist/pointer.js +0 -9
  166. package/dist/utils/dom/pointer.d.ts +0 -2
  167. package/docs/code-architecture.md +0 -118
package/dist/dialog.js CHANGED
@@ -55,7 +55,6 @@ function useDialogContentInteractions(root, props, events) {
55
55
  if (!content) return null;
56
56
  return [content, ...root.layer.focusBranches.value];
57
57
  });
58
- let listenerDocument = null;
59
58
  function resolveInitialFocus() {
60
59
  const initialFocus = props.initialFocus;
61
60
  const resolved = isRef(initialFocus) ? initialFocus.value : initialFocus;
@@ -76,7 +75,7 @@ function useDialogContentInteractions(root, props, events) {
76
75
  resolveHTMLElementRef(value, id.value, (element) => root.setContent(element, id.value));
77
76
  }
78
77
  function onDocumentKeydown(event) {
79
- if (event.key !== "Escape" || event.defaultPrevented || !root.closeOnEscape.value || !root.layer.isTopLayer()) return;
78
+ if (event.defaultPrevented || !root.closeOnEscape.value) return;
80
79
  const customEvent = createCancelableCustomEvent("dialog-escape-key-down", { originalEvent: event }, event);
81
80
  events.escapeKeyDown(customEvent);
82
81
  if (customEvent.defaultPrevented) return;
@@ -84,39 +83,29 @@ function useDialogContentInteractions(root, props, events) {
84
83
  root.close("escape");
85
84
  }
86
85
  function onDocumentPointerdown(event) {
87
- if (event.defaultPrevented || !root.closeOnOutsideClick.value || !root.layer.isTopLayer() || root.layer.isInside(event)) return;
86
+ if (event.defaultPrevented || !root.closeOnOutsideClick.value) return;
88
87
  const customEvent = createCancelableCustomEvent("dialog-pointer-down-outside", { originalEvent: event }, event);
89
88
  events.pointerDownOutside(customEvent);
90
89
  events.interactOutside(customEvent);
91
90
  if (!customEvent.defaultPrevented) root.close("outside");
92
91
  }
93
- function removeDocumentListeners() {
94
- if (!listenerDocument) return;
95
- listenerDocument.removeEventListener("keydown", onDocumentKeydown);
96
- listenerDocument.removeEventListener("pointerdown", onDocumentPointerdown, true);
97
- listenerDocument = null;
98
- }
99
- function addDocumentListeners(document) {
100
- if (listenerDocument === document) return;
101
- removeDocumentListeners();
102
- document.addEventListener("keydown", onDocumentKeydown);
103
- document.addEventListener("pointerdown", onDocumentPointerdown, true);
104
- listenerDocument = document;
105
- }
92
+ const disconnectLayerInteraction = root.layer.connectInteraction({
93
+ inside: () => [root.triggerRef.value],
94
+ escapeKeyDown: onDocumentKeydown,
95
+ pointerDownOutside: onDocumentPointerdown
96
+ });
106
97
  watch([
107
98
  root.isOpen,
108
99
  root.modal,
109
100
  root.contentRef
110
- ], ([open, modal], _previous, onCleanup) => {
101
+ ], ([open, modal]) => {
111
102
  const content = root.contentRef.value;
112
103
  if (!open || !content) {
113
104
  focusTrap.deactivate({ returnFocus: false });
114
105
  return;
115
106
  }
116
- addDocumentListeners(content.ownerDocument);
117
107
  if (modal) focusTrap.activate();
118
108
  else focusTrap.deactivate({ returnFocus: false });
119
- onCleanup(removeDocumentListeners);
120
109
  }, {
121
110
  flush: "post",
122
111
  immediate: true
@@ -125,7 +114,7 @@ function useDialogContentInteractions(root, props, events) {
125
114
  root.setContent(root.contentRef.value, nextId);
126
115
  }, { immediate: true });
127
116
  onBeforeUnmount(() => {
128
- removeDocumentListeners();
117
+ disconnectLayerInteraction();
129
118
  focusTrap.deactivate({ returnFocus: false });
130
119
  root.setContent(null, id.value);
131
120
  });
@@ -0,0 +1,6 @@
1
+ //#region src/utils/dom/direction.ts
2
+ function getElementDirection(element) {
3
+ return element.ownerDocument.defaultView?.getComputedStyle(element).direction === "rtl" ? "rtl" : "ltr";
4
+ }
5
+ //#endregion
6
+ export { getElementDirection as t };
@@ -65,15 +65,33 @@
65
65
  bottom: auto;
66
66
  left: 0;
67
67
  }
68
+ .rp-dropdown-menu__arrow {
69
+ background-color: inherit;
70
+ border: inherit;
71
+ rotate: 45deg;
72
+ }
73
+ .rp-dropdown-menu__arrow[data-side=top] {
74
+ border-top-color: transparent;
75
+ border-left-color: transparent;
76
+ }
77
+ .rp-dropdown-menu__arrow[data-side=right] {
78
+ border-top-color: transparent;
79
+ border-right-color: transparent;
80
+ }
81
+ .rp-dropdown-menu__arrow[data-side=bottom] {
82
+ border-right-color: transparent;
83
+ border-bottom-color: transparent;
84
+ }
85
+ .rp-dropdown-menu__arrow[data-side=left] {
86
+ border-bottom-color: transparent;
87
+ border-left-color: transparent;
88
+ }
68
89
  .rp-dropdown-menu__arrow {
69
90
  position: absolute;
70
91
  box-sizing: border-box;
71
92
  width: var(--_rp-dropdown-menu-arrow-size);
72
93
  height: var(--_rp-dropdown-menu-arrow-size);
73
94
  pointer-events: none;
74
- background-color: inherit;
75
- border: inherit;
76
- rotate: 45deg;
77
95
  }
78
96
  .rp-dropdown-menu__arrow[data-side=top] {
79
97
  bottom: calc(-1 * var(--_rp-dropdown-menu-arrow-size) / 2);