ropav 0.1.6 → 0.1.7

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 (208) hide show
  1. package/README.md +6 -0
  2. package/dist/accordion.css +17 -17
  3. package/dist/accordion.js +123 -155
  4. package/dist/alert.css +18 -18
  5. package/dist/alert.js +10 -11
  6. package/dist/aria.js +14 -0
  7. package/dist/aspect-ratio.js +1 -1
  8. package/dist/attributes.js +9 -0
  9. package/dist/attributes2.js +29 -0
  10. package/dist/avatar.css +19 -19
  11. package/dist/avatar.js +9 -17
  12. package/dist/badge.css +16 -16
  13. package/dist/badge.js +5 -5
  14. package/dist/button-group.js +1 -1
  15. package/dist/button-link.js +4 -3
  16. package/dist/button.js +4 -3
  17. package/dist/button.scss_vue_type_style_index_0_src_true_lang.js +1 -1
  18. package/dist/card.js +1 -1
  19. package/dist/checkbox.css +32 -32
  20. package/dist/checkbox.js +22 -28
  21. package/dist/collapse.css +6 -6
  22. package/dist/collapse.js +7 -6
  23. package/dist/collectionNavigation.js +2 -99
  24. package/dist/color-input.css +19 -19
  25. package/dist/color-input.js +14 -13
  26. package/dist/color-picker.css +40 -40
  27. package/dist/color-picker.js +221 -200
  28. package/dist/color-picker2.js +1 -9
  29. package/dist/color-swatch.css +4 -4
  30. package/dist/color-swatch.js +6 -8
  31. package/dist/color.js +5 -10
  32. package/dist/componentColors.js +125 -84
  33. package/dist/componentRef.js +26 -0
  34. package/dist/components/accordion/accordionContext.d.ts +3 -0
  35. package/dist/components/accordion/accordionModel.d.ts +14 -0
  36. package/dist/components/accordion/index.d.ts +2 -1
  37. package/dist/components/accordion/index.js +1 -1
  38. package/dist/components/accordion/types.d.ts +1 -2
  39. package/dist/components/accordion/useAccordion.d.ts +2 -2
  40. package/dist/components/accordion/useAccordionItem.d.ts +2 -0
  41. package/dist/components/checkbox/useCheckbox.d.ts +1 -2
  42. package/dist/components/color-picker/index.js +2 -2
  43. package/dist/components/color-picker/types.d.ts +2 -2
  44. package/dist/components/color-picker/useColorPickerSaturation.d.ts +22 -0
  45. package/dist/components/color-picker/useColorPickerSlider.d.ts +20 -0
  46. package/dist/components/color-picker/useColorPickerValue.d.ts +1 -1
  47. package/dist/components/dialog/{dialog-core.d.ts → dialogContext.d.ts} +1 -5
  48. package/dist/components/dialog/useDialogContentInteractions.d.ts +18 -0
  49. package/dist/components/dialog/useDialogRootState.d.ts +19 -0
  50. package/dist/components/dropdown-menu/dropdown-menu-item-row.d.ts +1 -1
  51. package/dist/components/dropdown-menu/dropdown-menu-items.d.ts +1 -1
  52. package/dist/components/dropdown-menu/dropdown-menu-model.d.ts +8 -0
  53. package/dist/components/dropdown-menu/dropdown-menu-root.d.ts +2 -2
  54. package/dist/components/dropdown-menu/dropdown-menu-sub-trigger.d.ts +1 -1
  55. package/dist/components/dropdown-menu/dropdown-menu-sub.d.ts +1 -1
  56. package/dist/components/dropdown-menu/{dropdown-menu-primitive-core.d.ts → dropdownMenuContext.d.ts} +16 -18
  57. package/dist/components/dropdown-menu/dropdownMenuDataModel.d.ts +20 -0
  58. package/dist/components/dropdown-menu/dropdownMenuInteraction.d.ts +3 -0
  59. package/dist/components/dropdown-menu/dropdownMenuInteractionNavigation.d.ts +24 -0
  60. package/dist/components/dropdown-menu/dropdownMenuInteractionRegistry.d.ts +42 -0
  61. package/dist/components/dropdown-menu/dropdownMenuInteractionTypes.d.ts +85 -0
  62. package/dist/components/dropdown-menu/useDropdownMenu.d.ts +11 -11
  63. package/dist/components/dropdown-menu/useDropdownMenuContextTrigger.d.ts +9 -0
  64. package/dist/components/dropdown-menu/useDropdownMenuDataController.d.ts +34 -0
  65. package/dist/components/dropdown-menu/useDropdownMenuDataRegistration.d.ts +22 -0
  66. package/dist/components/dropdown-menu/useDropdownMenuHoverIntent.d.ts +6 -5
  67. package/dist/components/dropdown-menu/useDropdownMenuInteractionDismissal.d.ts +17 -0
  68. package/dist/components/dropdown-menu/useDropdownMenuInteractionKeyboard.d.ts +19 -0
  69. package/dist/components/dropdown-menu/useDropdownMenuPortalPosition.d.ts +0 -1
  70. package/dist/components/dropdown-menu/useDropdownMenuPresentation.d.ts +29 -0
  71. package/dist/components/dropdown-menu/useDropdownMenuPrimitiveContent.d.ts +2 -2
  72. package/dist/components/dropdown-menu/useDropdownMenuRenderItems.d.ts +1 -1
  73. package/dist/components/dropdown-menu/useDropdownMenuTargetBindings.d.ts +19 -0
  74. package/dist/components/floating/hoverDisclosureInteractionModel.d.ts +42 -0
  75. package/dist/components/floating/index.js +1 -1
  76. package/dist/components/floating/useFloatingPosition.d.ts +0 -1
  77. package/dist/components/floating/useHoverDisclosureInteractions.d.ts +32 -0
  78. package/dist/components/floating/useHoverDisclosureOpenState.d.ts +25 -0
  79. package/dist/components/floating/useHoverDisclosureTargetBinding.d.ts +27 -0
  80. package/dist/components/number-input/numberInputModel.d.ts +15 -0
  81. package/dist/components/number-input/useNumberInput.d.ts +3 -17
  82. package/dist/components/pagination/index.d.ts +1 -1
  83. package/dist/components/pagination/index.js +1 -1
  84. package/dist/components/pagination/paginationModel.d.ts +4 -0
  85. package/dist/components/pagination/types.d.ts +15 -0
  86. package/dist/components/pagination/usePagination.d.ts +3 -19
  87. package/dist/components/popover/usePopoverBindings.d.ts +16 -0
  88. package/dist/components/progress/progressModel.d.ts +8 -0
  89. package/dist/components/progress/useProgress.d.ts +0 -6
  90. package/dist/components/radio/useRadio.d.ts +1 -2
  91. package/dist/components/scroll-area/scroll-area.d.ts +1 -1
  92. package/dist/components/scroll-area/scrollAreaModel.d.ts +64 -0
  93. package/dist/components/scroll-area/useScrollArea.d.ts +70 -53
  94. package/dist/components/scroll-area/{useScrollAreaPresentation.d.ts → useScrollAreaAttributes.d.ts} +37 -17
  95. package/dist/components/scroll-area/useScrollAreaDerivedState.d.ts +8 -0
  96. package/dist/components/scroll-area/useScrollAreaMeasurement.d.ts +35 -0
  97. package/dist/components/scroll-area/useScrollAreaPointer.d.ts +10 -8
  98. package/dist/components/scroll-area/useScrollAreaVisibility.d.ts +15 -20
  99. package/dist/components/slider/rangeSliderModel.d.ts +41 -0
  100. package/dist/components/slider/{sliderCore.d.ts → sliderModel.d.ts} +0 -1
  101. package/dist/components/slider/useRangeSlider.d.ts +8 -16
  102. package/dist/components/slider/useRangeSliderValueState.d.ts +40 -0
  103. package/dist/components/slider/useSlider.d.ts +7 -13
  104. package/dist/components/slider/useSliderPointerPreview.d.ts +22 -0
  105. package/dist/components/slider/useSliderTooltipState.d.ts +40 -0
  106. package/dist/components/slider/useSliderValueState.d.ts +33 -0
  107. package/dist/components/teleport-provider/index.js +1 -1
  108. package/dist/components/teleport-provider/useTeleportTarget.d.ts +1 -2
  109. package/dist/components/toast/useToastLifecycle.d.ts +19 -0
  110. package/dist/components/tooltip/useTooltip.d.ts +1 -2
  111. package/dist/css.js +12 -0
  112. package/dist/dialog.js +226 -218
  113. package/dist/dropdown-menu.js +1458 -1097
  114. package/dist/events.js +59 -0
  115. package/dist/field.css +8 -8
  116. package/dist/field.js +13 -25
  117. package/dist/floating.js +548 -319
  118. package/dist/floatingOffset.js +11 -0
  119. package/dist/focus-trap.js +7 -5
  120. package/dist/focusNavigation.js +37 -0
  121. package/dist/icon-button.css +8 -8
  122. package/dist/icon-button.js +7 -6
  123. package/dist/index.js +6 -6
  124. package/dist/input.css +24 -24
  125. package/dist/input.js +19 -31
  126. package/dist/interactive.js +18 -0
  127. package/dist/modal.js +1 -1
  128. package/dist/number-input.css +18 -18
  129. package/dist/number-input.js +14 -12
  130. package/dist/number.js +22 -0
  131. package/dist/overlay.js +3 -2
  132. package/dist/pagination.css +28 -28
  133. package/dist/pagination.js +65 -63
  134. package/dist/pointer.js +9 -0
  135. package/dist/popover.css +34 -34
  136. package/dist/popover.js +85 -86
  137. package/dist/progress.js +10 -13
  138. package/dist/query.js +40 -0
  139. package/dist/radio.css +18 -18
  140. package/dist/radio.js +30 -36
  141. package/dist/rafScheduler.js +34 -0
  142. package/dist/scroll-area.css +28 -28
  143. package/dist/scroll-area.js +512 -516
  144. package/dist/select.css +45 -45
  145. package/dist/select.js +36 -44
  146. package/dist/slider.css +191 -191
  147. package/dist/slider.js +691 -618
  148. package/dist/styles-api.d.ts +0 -1
  149. package/dist/styles-api.js +1 -4
  150. package/dist/switch.css +17 -17
  151. package/dist/switch.js +14 -15
  152. package/dist/tabs.css +43 -43
  153. package/dist/tabs.js +29 -56
  154. package/dist/text.js +17 -0
  155. package/dist/textarea.css +26 -26
  156. package/dist/textarea.js +21 -32
  157. package/dist/toast.css +26 -26
  158. package/dist/toast.js +141 -118
  159. package/dist/tooltip.css +12 -12
  160. package/dist/tooltip.js +36 -40
  161. package/dist/useCollapse.js +8 -11
  162. package/dist/useControlState.js +3 -6
  163. package/dist/useFloatingPosition.js +140 -10
  164. package/dist/useOverlayZIndex.js +1 -5
  165. package/dist/useTeleportTarget.js +3 -14
  166. package/dist/useTypeahead.js +94 -0
  167. package/dist/utils/aria.d.ts +3 -0
  168. package/dist/utils/attributes.d.ts +2 -0
  169. package/dist/utils/bem.d.ts +3 -0
  170. package/dist/utils/collectionNavigation.d.ts +2 -0
  171. package/dist/utils/color.d.ts +7 -0
  172. package/dist/{components/color-picker/color-picker-utils.d.ts → utils/colorPicker.d.ts} +5 -4
  173. package/dist/utils/componentColors.d.ts +7 -0
  174. package/dist/utils/css.d.ts +3 -0
  175. package/dist/utils/dom/ancestry.d.ts +7 -0
  176. package/dist/utils/dom/attributes.d.ts +16 -0
  177. package/dist/utils/dom/componentRef.d.ts +4 -0
  178. package/dist/utils/dom/events.d.ts +5 -0
  179. package/dist/utils/dom/focusNavigation.d.ts +7 -0
  180. package/dist/utils/dom/interactive.d.ts +2 -0
  181. package/dist/utils/dom/pointer.d.ts +2 -0
  182. package/dist/utils/dom/query.d.ts +4 -0
  183. package/dist/utils/dom/scroll.d.ts +23 -0
  184. package/dist/utils/floatingOffset.d.ts +10 -0
  185. package/dist/utils/geometry.d.ts +14 -0
  186. package/dist/utils/indexPath.d.ts +6 -0
  187. package/dist/utils/number.d.ts +4 -0
  188. package/dist/utils/rafScheduler.d.ts +4 -0
  189. package/dist/utils/text.d.ts +2 -0
  190. package/docs/code-architecture.md +118 -0
  191. package/docs/public-floating-api.md +6 -5
  192. package/package.json +13 -12
  193. package/dist/components/dropdown-menu/dropdown-menu-outside.d.ts +0 -3
  194. package/dist/components/dropdown-menu/dropdown-menu-utils.d.ts +0 -21
  195. package/dist/components/dropdown-menu/useDropdownMenuDisclosure.d.ts +0 -36
  196. package/dist/components/dropdown-menu/useDropdownMenuDom.d.ts +0 -29
  197. package/dist/components/dropdown-menu/useDropdownMenuInteractions.d.ts +0 -52
  198. package/dist/components/dropdown-menu/useDropdownMenuNavigation.d.ts +0 -17
  199. package/dist/components/dropdown-menu/useDropdownSubmenus.d.ts +0 -18
  200. package/dist/components/scroll-area/scrollAreaCore.d.ts +0 -30
  201. package/dist/components/scroll-area/useScrollAreaControls.d.ts +0 -25
  202. package/dist/components/scroll-area/useScrollAreaMetrics.d.ts +0 -38
  203. /package/dist/components/alert/{useAlertColor.d.ts → alertColor.d.ts} +0 -0
  204. /package/dist/components/avatar/{useAvatarColor.d.ts → avatarColor.d.ts} +0 -0
  205. /package/dist/components/badge/{useBadgeColor.d.ts → badgeColor.d.ts} +0 -0
  206. /package/dist/components/button/{useButtonColor.d.ts → buttonColor.d.ts} +0 -0
  207. /package/dist/components/color-swatch/{useColorSwatchColor.d.ts → colorSwatchColor.d.ts} +0 -0
  208. /package/dist/components/toast/{useToastColor.d.ts → toastColor.d.ts} +0 -0
package/dist/events.js ADDED
@@ -0,0 +1,59 @@
1
+ import { n as matchesSelectorSafe, r as querySelectorAllSafe, t as isElement } from "./query.js";
2
+ //#region src/utils/dom/events.ts
3
+ function isNodeLike(value) {
4
+ return value != null && typeof value === "object" && "nodeType" in value && typeof value.nodeType === "number";
5
+ }
6
+ function isNodeWithinElement(value, element) {
7
+ if (!isElement(element) || !isNodeLike(value)) return false;
8
+ try {
9
+ return element.contains(value);
10
+ } catch {
11
+ return false;
12
+ }
13
+ }
14
+ function isEventWithinElement(event, element) {
15
+ const path = event.composedPath();
16
+ if (path.length > 0) return path.some((entry) => entry === element || isNodeWithinElement(entry, element));
17
+ return isNodeWithinElement(event.target, element);
18
+ }
19
+ function getEventDocument(event) {
20
+ const target = event.target;
21
+ if (target != null && typeof target === "object") {
22
+ if ("nodeType" in target && target.nodeType === 9) return target;
23
+ if ("ownerDocument" in target) return target.ownerDocument ?? null;
24
+ if ("document" in target) return target.document ?? null;
25
+ }
26
+ return typeof document !== "undefined" ? document : null;
27
+ }
28
+ function isEventWithinSelector(event, selector) {
29
+ const path = event.composedPath();
30
+ if (path.length > 0) return path.some((entry) => isElement(entry) && matchesSelectorSafe(entry, selector));
31
+ return querySelectorAllSafe(selector, getEventDocument(event)).some((element) => isEventWithinElement(event, element));
32
+ }
33
+ function isEventWithinTargets(event, targets) {
34
+ for (const target of targets) {
35
+ if (!target) continue;
36
+ if (typeof target === "string") {
37
+ if (isEventWithinSelector(event, target)) return true;
38
+ continue;
39
+ }
40
+ if (isEventWithinElement(event, target)) return true;
41
+ }
42
+ return false;
43
+ }
44
+ function getEventView(event) {
45
+ const target = event.target;
46
+ if (target == null || typeof target !== "object") return null;
47
+ if ("ownerDocument" in target) return target.ownerDocument?.defaultView ?? null;
48
+ if ("defaultView" in target) return target.defaultView ?? null;
49
+ return null;
50
+ }
51
+ function createCancelableCustomEvent(type, detail, originalEvent) {
52
+ return new ((getEventView(originalEvent)?.CustomEvent) ?? CustomEvent)(type, {
53
+ bubbles: false,
54
+ cancelable: true,
55
+ detail
56
+ });
57
+ }
58
+ //#endregion
59
+ export { isNodeWithinElement as i, isEventWithinElement as n, isEventWithinTargets as r, createCancelableCustomEvent as t };
package/dist/field.css CHANGED
@@ -1,5 +1,5 @@
1
1
  @layer ropav.components {
2
- .rp-field[data-v-cbd66c2e] {
2
+ .rp-field[data-v-babf7642] {
3
3
  --_rp-field-danger: var(--rp-color-red-filled);
4
4
  display: grid;
5
5
  gap: var(--rp-spacing-1);
@@ -7,10 +7,10 @@
7
7
  font-family: var(--rp-font-family);
8
8
  color: var(--rp-color-text);
9
9
  }
10
- html.dark .rp-field[data-v-cbd66c2e], [data-rp-color-scheme=dark] .rp-field[data-v-cbd66c2e] {
10
+ html.dark .rp-field[data-v-babf7642], [data-rp-color-scheme=dark] .rp-field[data-v-babf7642] {
11
11
  --_rp-field-danger: var(--rp-color-red-light-color);
12
12
  }
13
- .rp-field__label[data-v-cbd66c2e] {
13
+ .rp-field__label[data-v-babf7642] {
14
14
  display: inline-flex;
15
15
  width: fit-content;
16
16
  align-items: center;
@@ -20,23 +20,23 @@ html.dark .rp-field[data-v-cbd66c2e], [data-rp-color-scheme=dark] .rp-field[data
20
20
  font-weight: var(--rp-font-weight-medium);
21
21
  line-height: var(--rp-line-height-md);
22
22
  }
23
- .rp-field__required[data-v-cbd66c2e] {
23
+ .rp-field__required[data-v-babf7642] {
24
24
  color: var(--_rp-field-danger);
25
25
  line-height: 1;
26
26
  }
27
- .rp-field__label + .rp-field__control[data-v-cbd66c2e] {
27
+ .rp-field__label + .rp-field__control[data-v-babf7642] {
28
28
  margin-block-start: var(--rp-spacing-1);
29
29
  }
30
- .rp-field__control[data-v-cbd66c2e] {
30
+ .rp-field__control[data-v-babf7642] {
31
31
  min-width: 0;
32
32
  }
33
- .rp-field__description[data-v-cbd66c2e] {
33
+ .rp-field__description[data-v-babf7642] {
34
34
  margin: 0;
35
35
  color: var(--rp-color-dimmed);
36
36
  font-size: var(--rp-font-size-sm);
37
37
  line-height: var(--rp-line-height-md);
38
38
  }
39
- .rp-field--disabled .rp-field__label[data-v-cbd66c2e], .rp-field--disabled .rp-field__description[data-v-cbd66c2e] {
39
+ .rp-field--disabled .rp-field__label[data-v-babf7642], .rp-field--disabled .rp-field__description[data-v-babf7642] {
40
40
  color: var(--rp-color-disabled-color);
41
41
  }
42
42
  }
package/dist/field.js CHANGED
@@ -1,21 +1,11 @@
1
1
  import './field.css';
2
- import { n as useStylesApi, t as presence } from "./styles-api.js";
2
+ import { t as useStylesApi } from "./styles-api.js";
3
+ import { n as toPresenceAttribute } from "./attributes.js";
3
4
  import { t as bem } from "./bem.js";
4
5
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
5
- import { child, computed, createIf, createInvoker, createSlot, defineVaporComponent, delegateEvents, renderEffect, setDynamicProps, setInsertionState, setText, template, toDisplayString, unref, useId, useSlots } from "vue";
6
+ import { t as isInteractiveElement } from "./interactive.js";
7
+ import { child, computed, createIf, createSlot, defineVaporComponent, on, renderEffect, setDynamicProps, setInsertionState, setText, template, toDisplayString, unref, useId, useSlots } from "vue";
6
8
  //#region src/components/field/useField.ts
7
- var INTERACTIVE_LABEL_SELECTOR = [
8
- "button",
9
- "a[href]",
10
- "input",
11
- "select",
12
- "textarea",
13
- "[contenteditable=\"true\"]",
14
- "[tabindex]:not([tabindex=\"-1\"])"
15
- ].join(",");
16
- function isInteractiveLabelTarget(target) {
17
- return Boolean(target.closest(INTERACTIVE_LABEL_SELECTOR));
18
- }
19
9
  function useField(props) {
20
10
  const slots = useSlots();
21
11
  const generatedId = useId();
@@ -43,8 +33,7 @@ function useField(props) {
43
33
  }));
44
34
  function focusControl(e) {
45
35
  if (props.disabled) return;
46
- const target = e.target;
47
- if (target instanceof Element && isInteractiveLabelTarget(target)) return;
36
+ if (isInteractiveElement(e.target)) return;
48
37
  const label = e.currentTarget;
49
38
  const control = label instanceof HTMLLabelElement ? label.control ?? label.ownerDocument.getElementById(controlId.value) : void 0;
50
39
  if (control instanceof HTMLElement) control.focus();
@@ -67,11 +56,10 @@ function useField(props) {
67
56
  //#endregion
68
57
  //#region src/components/field/field.vue?vue&type=script&setup=true&vapor=true&lang.ts
69
58
  var t0 = template(" ");
70
- var t1 = template("<span data-v-cbd66c2e>*");
71
- var t2 = template("<label data-v-cbd66c2e>");
72
- var t3 = template("<p data-v-cbd66c2e>");
73
- var t4 = template("<div data-v-cbd66c2e><div data-v-cbd66c2e></div>", 1);
74
- delegateEvents("mousedown");
59
+ var t1 = template("<span data-v-babf7642>*");
60
+ var t2 = template("<label data-v-babf7642>");
61
+ var t3 = template("<p data-v-babf7642>");
62
+ var t4 = template("<div data-v-babf7642><div data-v-babf7642></div>", 1);
75
63
  //#endregion
76
64
  //#region src/components/field/field.vue
77
65
  var field_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
@@ -103,8 +91,8 @@ var field_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
103
91
  const { getPartAttrs, getRootAttrs } = useStylesApi(props, "root");
104
92
  const rootAttrs = computed(() => getRootAttrs({
105
93
  class: rootClass.value,
106
- "data-disabled": presence(props.disabled),
107
- "data-invalid": presence(isInvalid.value)
94
+ "data-disabled": toPresenceAttribute(props.disabled),
95
+ "data-invalid": toPresenceAttribute(isInvalid.value)
108
96
  }));
109
97
  const n20 = t4();
110
98
  const n10 = child(n20, 1);
@@ -129,7 +117,7 @@ var field_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
129
117
  renderEffect(() => setDynamicProps(n7, [unref(getPartAttrs)("required", { class: "rp-field__required" }), { "aria-hidden": "true" }]));
130
118
  return n7;
131
119
  });
132
- n8.$evtmousedown = createInvoker((e) => unref(focusControl)(e));
120
+ on(n8, "mousedown", (e) => unref(focusControl)(e));
133
121
  return n8;
134
122
  });
135
123
  renderEffect(() => setDynamicProps(n10, [unref(getPartAttrs)("control", { class: "rp-field__control" })]));
@@ -161,7 +149,7 @@ var field_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
161
149
  });
162
150
  return n20;
163
151
  }
164
- }), [["__scopeId", "data-v-cbd66c2e"]]);
152
+ }), [["__scopeId", "data-v-babf7642"]]);
165
153
  //#endregion
166
154
  //#region src/components/field/types.ts
167
155
  var fieldParts = [