ropav 0.1.5 → 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 (235) hide show
  1. package/README.md +10 -0
  2. package/dist/accordion.css +17 -17
  3. package/dist/accordion.js +125 -154
  4. package/dist/alert.css +18 -18
  5. package/dist/alert.js +20 -20
  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 +10 -18
  12. package/dist/badge.css +16 -16
  13. package/dist/badge.js +6 -6
  14. package/dist/base.css +18 -13
  15. package/dist/button-group.js +1 -1
  16. package/dist/button-link.js +13 -14
  17. package/dist/button.css +32 -27
  18. package/dist/button.js +13 -14
  19. package/dist/{useButtonColor.js → button.scss_vue_type_style_index_0_src_true_lang.js} +3 -2
  20. package/dist/card.js +1 -1
  21. package/dist/checkbox.css +32 -32
  22. package/dist/checkbox.js +23 -29
  23. package/dist/collapse.css +6 -6
  24. package/dist/collapse.js +8 -7
  25. package/dist/collectionNavigation.js +2 -99
  26. package/dist/color-input.css +19 -19
  27. package/dist/color-input.js +15 -14
  28. package/dist/color-picker.css +40 -40
  29. package/dist/color-picker.js +222 -202
  30. package/dist/color-picker2.js +1 -9
  31. package/dist/color-swatch.css +4 -4
  32. package/dist/color-swatch.js +7 -9
  33. package/dist/color.js +5 -10
  34. package/dist/componentColors.js +165 -84
  35. package/dist/componentRef.js +26 -0
  36. package/dist/components/accordion/accordionContext.d.ts +3 -0
  37. package/dist/components/accordion/accordionModel.d.ts +14 -0
  38. package/dist/components/accordion/index.d.ts +2 -1
  39. package/dist/components/accordion/index.js +1 -1
  40. package/dist/components/accordion/types.d.ts +1 -2
  41. package/dist/components/accordion/useAccordion.d.ts +2 -2
  42. package/dist/components/accordion/useAccordionItem.d.ts +2 -0
  43. package/dist/components/checkbox/useCheckbox.d.ts +2 -3
  44. package/dist/components/color-input/color-input.d.ts +2 -2
  45. package/dist/components/color-input/useColorInput.d.ts +1 -1
  46. package/dist/components/color-picker/index.js +2 -2
  47. package/dist/components/color-picker/types.d.ts +2 -2
  48. package/dist/components/color-picker/useColorPickerSaturation.d.ts +22 -0
  49. package/dist/components/color-picker/useColorPickerSlider.d.ts +20 -0
  50. package/dist/components/color-picker/useColorPickerValue.d.ts +1 -1
  51. package/dist/components/dialog/{dialog-core.d.ts → dialogContext.d.ts} +2 -6
  52. package/dist/components/dialog/useDialogContentInteractions.d.ts +18 -0
  53. package/dist/components/dialog/useDialogRootState.d.ts +19 -0
  54. package/dist/components/dropdown-menu/dropdown-menu-content.d.ts +2 -2
  55. package/dist/components/dropdown-menu/dropdown-menu-item-row.d.ts +1 -1
  56. package/dist/components/dropdown-menu/dropdown-menu-items.d.ts +1 -1
  57. package/dist/components/dropdown-menu/dropdown-menu-model.d.ts +8 -0
  58. package/dist/components/dropdown-menu/dropdown-menu-root.d.ts +2 -2
  59. package/dist/components/dropdown-menu/dropdown-menu-sub-content.d.ts +2 -2
  60. package/dist/components/dropdown-menu/dropdown-menu-sub-trigger.d.ts +1 -1
  61. package/dist/components/dropdown-menu/dropdown-menu-sub.d.ts +1 -1
  62. package/dist/components/dropdown-menu/dropdown-menu.d.ts +3 -3
  63. package/dist/components/dropdown-menu/{dropdown-menu-primitive-core.d.ts → dropdownMenuContext.d.ts} +17 -19
  64. package/dist/components/dropdown-menu/dropdownMenuDataModel.d.ts +20 -0
  65. package/dist/components/dropdown-menu/dropdownMenuInteraction.d.ts +3 -0
  66. package/dist/components/dropdown-menu/dropdownMenuInteractionNavigation.d.ts +24 -0
  67. package/dist/components/dropdown-menu/dropdownMenuInteractionRegistry.d.ts +42 -0
  68. package/dist/components/dropdown-menu/dropdownMenuInteractionTypes.d.ts +85 -0
  69. package/dist/components/dropdown-menu/useDropdownMenu.d.ts +11 -11
  70. package/dist/components/dropdown-menu/useDropdownMenuContextTrigger.d.ts +9 -0
  71. package/dist/components/dropdown-menu/useDropdownMenuDataController.d.ts +34 -0
  72. package/dist/components/dropdown-menu/useDropdownMenuDataRegistration.d.ts +22 -0
  73. package/dist/components/dropdown-menu/useDropdownMenuHoverIntent.d.ts +6 -5
  74. package/dist/components/dropdown-menu/useDropdownMenuInteractionDismissal.d.ts +17 -0
  75. package/dist/components/dropdown-menu/useDropdownMenuInteractionKeyboard.d.ts +19 -0
  76. package/dist/components/dropdown-menu/useDropdownMenuPortalPosition.d.ts +0 -1
  77. package/dist/components/dropdown-menu/useDropdownMenuPresentation.d.ts +29 -0
  78. package/dist/components/dropdown-menu/useDropdownMenuPrimitiveContent.d.ts +2 -2
  79. package/dist/components/dropdown-menu/useDropdownMenuRenderItems.d.ts +1 -1
  80. package/dist/components/dropdown-menu/useDropdownMenuTargetBindings.d.ts +19 -0
  81. package/dist/components/floating/hoverDisclosureInteractionModel.d.ts +42 -0
  82. package/dist/components/floating/index.js +1 -1
  83. package/dist/components/floating/useFloatingPosition.d.ts +0 -1
  84. package/dist/components/floating/useHoverDisclosureInteractions.d.ts +32 -0
  85. package/dist/components/floating/useHoverDisclosureOpenState.d.ts +25 -0
  86. package/dist/components/floating/useHoverDisclosureTargetBinding.d.ts +27 -0
  87. package/dist/components/input/useInput.d.ts +1 -1
  88. package/dist/components/number-input/numberInputModel.d.ts +15 -0
  89. package/dist/components/number-input/useNumberInput.d.ts +4 -18
  90. package/dist/components/pagination/index.d.ts +1 -1
  91. package/dist/components/pagination/index.js +1 -1
  92. package/dist/components/pagination/paginationModel.d.ts +4 -0
  93. package/dist/components/pagination/types.d.ts +15 -0
  94. package/dist/components/pagination/usePagination.d.ts +3 -19
  95. package/dist/components/popover/usePopoverBindings.d.ts +16 -0
  96. package/dist/components/progress/progressModel.d.ts +8 -0
  97. package/dist/components/progress/useProgress.d.ts +1 -7
  98. package/dist/components/radio/useRadio.d.ts +3 -4
  99. package/dist/components/scroll-area/scroll-area.d.ts +1 -1
  100. package/dist/components/scroll-area/scrollAreaModel.d.ts +64 -0
  101. package/dist/components/scroll-area/types.d.ts +4 -0
  102. package/dist/components/scroll-area/useScrollArea.d.ts +70 -52
  103. package/dist/components/scroll-area/{useScrollAreaPresentation.d.ts → useScrollAreaAttributes.d.ts} +37 -14
  104. package/dist/components/scroll-area/useScrollAreaDerivedState.d.ts +8 -0
  105. package/dist/components/scroll-area/useScrollAreaMeasurement.d.ts +35 -0
  106. package/dist/components/scroll-area/useScrollAreaPointer.d.ts +10 -8
  107. package/dist/components/scroll-area/useScrollAreaVisibility.d.ts +15 -20
  108. package/dist/components/select/useSelect.d.ts +2 -1
  109. package/dist/components/select/useSelectNativeValue.d.ts +1 -7
  110. package/dist/components/slider/rangeSliderModel.d.ts +41 -0
  111. package/dist/components/slider/{sliderCore.d.ts → sliderModel.d.ts} +2 -2
  112. package/dist/components/slider/useRangeSlider.d.ts +9 -17
  113. package/dist/components/slider/useRangeSliderValueState.d.ts +40 -0
  114. package/dist/components/slider/useSlider.d.ts +8 -14
  115. package/dist/components/slider/useSliderPointerPreview.d.ts +22 -0
  116. package/dist/components/slider/useSliderTooltipState.d.ts +40 -0
  117. package/dist/components/slider/useSliderValueState.d.ts +33 -0
  118. package/dist/components/switch/useSwitch.d.ts +1 -1
  119. package/dist/components/teleport-provider/index.js +1 -1
  120. package/dist/components/teleport-provider/useTeleportTarget.d.ts +1 -2
  121. package/dist/components/textarea/useTextarea.d.ts +1 -1
  122. package/dist/components/toast/useToastLifecycle.d.ts +19 -0
  123. package/dist/components/tooltip/useTooltip.d.ts +1 -2
  124. package/dist/composables/index.d.ts +2 -0
  125. package/dist/composables/index.js +2 -0
  126. package/dist/composables/useControllableValue.d.ts +14 -0
  127. package/dist/css.js +12 -0
  128. package/dist/dialog.js +227 -216
  129. package/dist/dropdown-menu.js +1493 -1118
  130. package/dist/events.js +59 -0
  131. package/dist/field.css +8 -8
  132. package/dist/field.js +13 -25
  133. package/dist/floating.js +553 -312
  134. package/dist/floatingOffset.js +11 -0
  135. package/dist/focus-trap.js +7 -5
  136. package/dist/focusNavigation.js +37 -0
  137. package/dist/icon-button.css +12 -173
  138. package/dist/icon-button.js +8 -7
  139. package/dist/index.d.ts +5 -4
  140. package/dist/index.js +13 -11
  141. package/dist/input.css +24 -24
  142. package/dist/input.js +20 -32
  143. package/dist/interactive.js +18 -0
  144. package/dist/modal.js +11 -7
  145. package/dist/number-input.css +18 -18
  146. package/dist/number-input.js +15 -13
  147. package/dist/number.js +22 -0
  148. package/dist/overlay.js +3 -2
  149. package/dist/pagination.css +28 -28
  150. package/dist/pagination.js +67 -65
  151. package/dist/pointer.js +9 -0
  152. package/dist/popover.css +34 -34
  153. package/dist/popover.js +93 -91
  154. package/dist/progress.css +29 -21
  155. package/dist/progress.js +25 -21
  156. package/dist/query.js +40 -0
  157. package/dist/radio.css +18 -18
  158. package/dist/radio.js +31 -37
  159. package/dist/rafScheduler.js +34 -0
  160. package/dist/scroll-area.css +35 -26
  161. package/dist/scroll-area.js +553 -500
  162. package/dist/select.css +45 -45
  163. package/dist/select.js +70 -56
  164. package/dist/slider.css +191 -191
  165. package/dist/slider.js +695 -628
  166. package/dist/styles-api.d.ts +0 -1
  167. package/dist/styles-api.js +1 -4
  168. package/dist/switch.css +17 -17
  169. package/dist/switch.js +15 -16
  170. package/dist/tabs.css +46 -46
  171. package/dist/tabs.js +51 -68
  172. package/dist/text.js +17 -0
  173. package/dist/textarea.css +26 -26
  174. package/dist/textarea.js +22 -33
  175. package/dist/toast.css +26 -26
  176. package/dist/toast.js +157 -129
  177. package/dist/tooltip.css +12 -12
  178. package/dist/tooltip.js +46 -47
  179. package/dist/useCollapse.js +19 -17
  180. package/dist/useControlState.js +4 -7
  181. package/dist/useControllableValue.js +8 -2
  182. package/dist/useFloatingPosition.js +122 -1128
  183. package/dist/useFormControl.js +3 -2
  184. package/dist/useOverlayZIndex.js +2 -6
  185. package/dist/useRequiredInject.js +1 -1
  186. package/dist/useTeleportTarget.js +3 -14
  187. package/dist/useTypeahead.js +94 -0
  188. package/dist/utils/aria.d.ts +3 -0
  189. package/dist/utils/attributes.d.ts +2 -0
  190. package/dist/utils/bem.d.ts +3 -0
  191. package/dist/utils/collectionNavigation.d.ts +2 -0
  192. package/dist/utils/color.d.ts +7 -0
  193. package/dist/{components/color-picker/color-picker-utils.d.ts → utils/colorPicker.d.ts} +5 -4
  194. package/dist/utils/componentColors.d.ts +7 -0
  195. package/dist/utils/css.d.ts +3 -0
  196. package/dist/utils/dom/ancestry.d.ts +7 -0
  197. package/dist/utils/dom/attributes.d.ts +16 -0
  198. package/dist/utils/dom/componentRef.d.ts +4 -0
  199. package/dist/utils/dom/events.d.ts +5 -0
  200. package/dist/utils/dom/focusNavigation.d.ts +7 -0
  201. package/dist/utils/dom/interactive.d.ts +2 -0
  202. package/dist/utils/dom/pointer.d.ts +2 -0
  203. package/dist/utils/dom/query.d.ts +4 -0
  204. package/dist/utils/dom/scroll.d.ts +23 -0
  205. package/dist/utils/floatingOffset.d.ts +10 -0
  206. package/dist/utils/geometry.d.ts +14 -0
  207. package/dist/utils/indexPath.d.ts +6 -0
  208. package/dist/utils/number.d.ts +4 -0
  209. package/dist/utils/rafScheduler.d.ts +4 -0
  210. package/dist/utils/text.d.ts +2 -0
  211. package/docs/code-architecture.md +118 -0
  212. package/docs/public-composables-api.md +52 -0
  213. package/docs/public-floating-api.md +6 -5
  214. package/package.json +54 -46
  215. package/src/styles/_mixins.scss +4 -0
  216. package/src/styles/_tokens.scss +12 -12
  217. package/src/styles/_variables.scss +1 -1
  218. package/dist/button-link.css +0 -167
  219. package/dist/components/dropdown-menu/dropdown-menu-outside.d.ts +0 -3
  220. package/dist/components/dropdown-menu/dropdown-menu-utils.d.ts +0 -21
  221. package/dist/components/dropdown-menu/useDropdownMenuDisclosure.d.ts +0 -37
  222. package/dist/components/dropdown-menu/useDropdownMenuDom.d.ts +0 -29
  223. package/dist/components/dropdown-menu/useDropdownMenuInteractions.d.ts +0 -52
  224. package/dist/components/dropdown-menu/useDropdownMenuNavigation.d.ts +0 -17
  225. package/dist/components/dropdown-menu/useDropdownSubmenus.d.ts +0 -18
  226. package/dist/components/scroll-area/scrollAreaCore.d.ts +0 -25
  227. package/dist/components/scroll-area/useScrollAreaControls.d.ts +0 -25
  228. package/dist/components/scroll-area/useScrollAreaMetrics.d.ts +0 -35
  229. /package/dist/components/alert/{useAlertColor.d.ts → alertColor.d.ts} +0 -0
  230. /package/dist/components/avatar/{useAvatarColor.d.ts → avatarColor.d.ts} +0 -0
  231. /package/dist/components/badge/{useBadgeColor.d.ts → badgeColor.d.ts} +0 -0
  232. /package/dist/components/button/{useButtonColor.d.ts → buttonColor.d.ts} +0 -0
  233. /package/dist/components/color-swatch/{useColorSwatchColor.d.ts → colorSwatchColor.d.ts} +0 -0
  234. /package/dist/components/toast/{useToastColor.d.ts → toastColor.d.ts} +0 -0
  235. /package/dist/{composables → internal/composables}/useOverlayLayer.d.ts +0 -0
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "ropav",
3
- "version": "0.1.5",
3
+ "version": "0.1.7",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
- "packageManager": "pnpm@11.14.0",
6
+ "packageManager": "pnpm@11.15.1",
7
7
  "engines": {
8
8
  "node": "^20.19.0 || ^22.13.0 || >=24.0.0"
9
9
  },
@@ -17,21 +17,30 @@
17
17
  "module": "./dist/index.js",
18
18
  "types": "./dist/index.d.ts",
19
19
  "sideEffects": [
20
- "**/*.css"
20
+ "**/*.css",
21
+ "**/*.scss"
21
22
  ],
23
+ "publishConfig": {
24
+ "access": "public",
25
+ "registry": "https://registry.npmjs.org/"
26
+ },
22
27
  "exports": {
23
28
  ".": {
24
29
  "types": "./dist/index.d.ts",
25
30
  "import": "./dist/index.js"
26
31
  },
27
- "./alert": {
28
- "types": "./dist/components/alert/index.d.ts",
29
- "import": "./dist/components/alert/index.js"
32
+ "./composables": {
33
+ "types": "./dist/composables/index.d.ts",
34
+ "import": "./dist/composables/index.js"
30
35
  },
31
36
  "./accordion": {
32
37
  "types": "./dist/components/accordion/index.d.ts",
33
38
  "import": "./dist/components/accordion/index.js"
34
39
  },
40
+ "./alert": {
41
+ "types": "./dist/components/alert/index.d.ts",
42
+ "import": "./dist/components/alert/index.js"
43
+ },
35
44
  "./aspect-ratio": {
36
45
  "types": "./dist/components/aspect-ratio/index.d.ts",
37
46
  "import": "./dist/components/aspect-ratio/index.js"
@@ -48,14 +57,14 @@
48
57
  "types": "./dist/components/button/index.d.ts",
49
58
  "import": "./dist/components/button/index.js"
50
59
  },
51
- "./button-link": {
52
- "types": "./dist/components/button-link/index.d.ts",
53
- "import": "./dist/components/button-link/index.js"
54
- },
55
60
  "./button-group": {
56
61
  "types": "./dist/components/button-group/index.d.ts",
57
62
  "import": "./dist/components/button-group/index.js"
58
63
  },
64
+ "./button-link": {
65
+ "types": "./dist/components/button-link/index.d.ts",
66
+ "import": "./dist/components/button-link/index.js"
67
+ },
59
68
  "./card": {
60
69
  "types": "./dist/components/card/index.d.ts",
61
70
  "import": "./dist/components/card/index.js"
@@ -80,26 +89,26 @@
80
89
  "types": "./dist/components/color-swatch/index.d.ts",
81
90
  "import": "./dist/components/color-swatch/index.js"
82
91
  },
83
- "./dropdown-menu": {
84
- "types": "./dist/components/dropdown-menu/index.d.ts",
85
- "import": "./dist/components/dropdown-menu/index.js"
86
- },
87
92
  "./dialog": {
88
93
  "types": "./dist/components/dialog/index.d.ts",
89
94
  "import": "./dist/components/dialog/index.js"
90
95
  },
96
+ "./dropdown-menu": {
97
+ "types": "./dist/components/dropdown-menu/index.d.ts",
98
+ "import": "./dist/components/dropdown-menu/index.js"
99
+ },
91
100
  "./field": {
92
101
  "types": "./dist/components/field/index.d.ts",
93
102
  "import": "./dist/components/field/index.js"
94
103
  },
95
- "./focus-trap": {
96
- "types": "./dist/components/focus-trap/index.d.ts",
97
- "import": "./dist/components/focus-trap/index.js"
98
- },
99
104
  "./floating": {
100
105
  "types": "./dist/components/floating/index.d.ts",
101
106
  "import": "./dist/components/floating/index.js"
102
107
  },
108
+ "./focus-trap": {
109
+ "types": "./dist/components/focus-trap/index.d.ts",
110
+ "import": "./dist/components/focus-trap/index.js"
111
+ },
103
112
  "./icon-button": {
104
113
  "types": "./dist/components/icon-button/index.d.ts",
105
114
  "import": "./dist/components/icon-button/index.js"
@@ -183,39 +192,38 @@
183
192
  },
184
193
  "scripts": {
185
194
  "dev": "pnpm run storybook",
195
+ "publication:sync": "node scripts/sync-package-publication.mjs --write",
196
+ "publication:check": "node scripts/sync-package-publication.mjs --check",
197
+ "publication:verify": "node scripts/verify-package-publication.mjs",
186
198
  "tokens:build": "style-dictionary build --config scripts/tokens.config.mjs --silent",
187
199
  "tokens:check": "node scripts/check-tokens.mjs",
188
- "styles:manifest:bootstrap": "node scripts/bootstrap-public-styles-manifest.mjs",
189
200
  "typecheck": "vue-tsc -b tsconfig.app.json tsconfig.node.json tsconfig.test.json",
190
201
  "typecheck:storybook": "vue-tsc -p tsconfig.storybook.json --noEmit",
191
202
  "lint": "oxlint",
192
203
  "lint:fix": "oxlint --fix",
193
204
  "format": "oxfmt",
194
205
  "format:check": "oxfmt --check",
195
- "test": "vitest run --project=unit",
196
- "test:consumer-types": "pnpm run test:package",
206
+ "test": "vitest run --project=unit --project=tooling",
197
207
  "test:consumer-types:built": "tsc -p tests/fixtures/consumer-types/tsconfig.bundler.json && tsc -p tests/fixtures/consumer-types/tsconfig.nodenext.json",
198
- "test:exports": "pnpm run test:package",
199
- "test:exports:built": "node scripts/check-exports.mjs",
208
+ "test:bundle:built": "node scripts/check-package-bundle.mjs",
200
209
  "test:consumer-fixture:built": "node tests/fixtures/consumer-app/check.mjs && vue-tsc -p tests/fixtures/consumer-app/tsconfig.json --noEmit && vite build --config tests/fixtures/consumer-app/vite.config.ts && node tests/fixtures/consumer-app/assertions.mjs",
201
- "test:package": "pnpm run build && pnpm run test:exports:built && pnpm run test:consumer-types:built && pnpm run test:consumer-fixture:built",
202
- "test:watch": "vitest --project=unit",
203
- "test:typecheck": "vitest run --project=unit --typecheck",
204
- "test:storybook": "vitest run --project=storybook",
205
- "test:all": "pnpm run tokens:check && pnpm test && pnpm test:storybook",
206
- "build": "pnpm run tokens:build && pnpm run tokens:check && pnpm run typecheck && vite build",
207
- "prepublishOnly": "pnpm run test:package",
210
+ "test:package": "pnpm run build && pnpm run publication:verify && pnpm run test:bundle:built && pnpm run test:consumer-types:built && pnpm run test:consumer-fixture:built",
211
+ "test:watch": "vitest --project=unit --project=tooling",
212
+ "test:typecheck": "vitest run --project=unit --project=tooling --typecheck",
213
+ "test:storybook": "vitest run --project=storybook-light --project=storybook-dark",
214
+ "build": "pnpm run publication:check && pnpm run tokens:build && pnpm run tokens:check && pnpm run typecheck && vite build",
215
+ "verify": "pnpm run lint && pnpm run format:check && pnpm run typecheck:storybook && pnpm run test && pnpm run test:storybook && pnpm run test:package",
216
+ "prepublishOnly": "pnpm run verify",
208
217
  "preview": "vite preview",
209
218
  "storybook": "pnpm run tokens:build && storybook dev -p 6006 --no-open",
210
219
  "build-storybook": "pnpm run tokens:build && pnpm run tokens:check && pnpm run typecheck:storybook && storybook build",
211
220
  "changelog": "conventional-changelog -p conventionalcommits -i CHANGELOG.md -o CHANGELOG.md",
212
- "changelog:all": "conventional-changelog -p conventionalcommits -i CHANGELOG.md -o CHANGELOG.md -r 0",
213
- "release": "pnpm run test:package && bumpp --git-check --all --commit \"chore(release): v%s\" --tag \"v%s\" --execute \"pnpm run changelog\""
221
+ "release": "pnpm run verify && bumpp --git-check --all --commit \"chore(release): v%s\" --tag \"v%s\" --execute \"pnpm run changelog\""
214
222
  },
215
223
  "peerDependencies": {
216
- "@vue/compiler-vapor": "3.6.0-rc.1",
224
+ "@vue/compiler-vapor": "3.6.0-rc.2",
217
225
  "unplugin-icons": "^23.0.1",
218
- "vue": "^3.6.0-rc.1"
226
+ "vue": "^3.6.0-rc.2"
219
227
  },
220
228
  "peerDependenciesMeta": {
221
229
  "@vue/compiler-vapor": {
@@ -230,33 +238,33 @@
230
238
  "focus-trap": "^8.2.2"
231
239
  },
232
240
  "devDependencies": {
233
- "@iconify-json/lucide": "^1.2.117",
234
- "@storybook/addon-a11y": "^10.5.2",
235
- "@storybook/addon-themes": "^10.5.2",
236
- "@storybook/addon-vitest": "^10.5.2",
237
- "@storybook/vue3-vite": "^10.5.2",
241
+ "@iconify-json/lucide": "^1.2.118",
242
+ "@storybook/addon-a11y": "^10.5.3",
243
+ "@storybook/addon-themes": "^10.5.3",
244
+ "@storybook/addon-vitest": "^10.5.3",
245
+ "@storybook/vue3-vite": "^10.5.3",
238
246
  "@types/node": "^26.1.1",
239
247
  "@vitejs/plugin-vue": "^6.0.8",
240
248
  "@vitest/browser-playwright": "^4.1.10",
241
- "@vue/compiler-vapor": "3.6.0-rc.1",
249
+ "@vue/compiler-vapor": "3.6.0-rc.2",
242
250
  "@vue/tsconfig": "^0.9.1",
243
- "bumpp": "^11.1.0",
251
+ "bumpp": "^12.0.0",
244
252
  "conventional-changelog": "^8.1.0",
245
253
  "conventional-changelog-conventionalcommits": "^10.2.1",
246
254
  "jsdom": "^29.1.1",
247
- "oxfmt": "^0.59.0",
248
- "oxlint": "^1.74.0",
255
+ "oxfmt": "^0.60.0",
256
+ "oxlint": "^1.75.0",
249
257
  "playwright": "^1.61.1",
250
258
  "sass-embedded": "^1.100.0",
251
- "storybook": "^10.5.2",
252
- "storybook-addon-pseudo-states": "^10.5.2",
259
+ "storybook": "^10.5.3",
260
+ "storybook-addon-pseudo-states": "^10.5.3",
253
261
  "style-dictionary": "5.5.0",
254
262
  "typescript": "~6.0.3",
255
263
  "unplugin-icons": "^23.0.1",
256
264
  "vite": "^8.1.5",
257
265
  "vite-plugin-dts": "^5.0.3",
258
266
  "vitest": "^4.1.10",
259
- "vue": "3.6.0-rc.1",
267
+ "vue": "3.6.0-rc.2",
260
268
  "vue-tsc": "^3.3.7"
261
269
  },
262
270
  "repository": {
@@ -128,6 +128,10 @@ $rp-component-colors:
128
128
  flex-shrink: 0;
129
129
  transform-origin: center;
130
130
  animation: rp-spinner-spin 700ms linear infinite;
131
+
132
+ @media (prefers-reduced-motion: reduce) {
133
+ animation: none;
134
+ }
131
135
  }
132
136
 
133
137
  @mixin spinner-keyframes {
@@ -474,7 +474,7 @@
474
474
  --rp-color-red-contrast : var(--rp-color-white);
475
475
  --rp-color-red-light : var(--rp-color-red-1);
476
476
  --rp-color-red-light-hover : var(--rp-color-red-2);
477
- --rp-color-red-light-color : var(--rp-color-red-9);
477
+ --rp-color-red-light-color : color-mix(in srgb, var(--rp-color-red-9) 89%, var(--rp-color-black));
478
478
  --rp-color-red-outline : var(--rp-color-red-6);
479
479
  --rp-color-red-outline-hover : color-mix(in srgb, var(--rp-color-red-6) 5%, transparent);
480
480
  --rp-color-pink-filled : var(--rp-color-pink-7);
@@ -498,7 +498,7 @@
498
498
  --rp-color-violet-contrast : var(--rp-color-white);
499
499
  --rp-color-violet-light : var(--rp-color-violet-1);
500
500
  --rp-color-violet-light-hover : var(--rp-color-violet-2);
501
- --rp-color-violet-light-color : var(--rp-color-violet-9);
501
+ --rp-color-violet-light-color : color-mix(in srgb, var(--rp-color-violet-9) 96%, var(--rp-color-black));
502
502
  --rp-color-violet-outline : var(--rp-color-violet-6);
503
503
  --rp-color-violet-outline-hover : color-mix(in srgb, var(--rp-color-violet-6) 5%, transparent);
504
504
  --rp-color-indigo-filled : var(--rp-color-indigo-7);
@@ -506,7 +506,7 @@
506
506
  --rp-color-indigo-contrast : var(--rp-color-white);
507
507
  --rp-color-indigo-light : var(--rp-color-indigo-1);
508
508
  --rp-color-indigo-light-hover : var(--rp-color-indigo-2);
509
- --rp-color-indigo-light-color : var(--rp-color-indigo-9);
509
+ --rp-color-indigo-light-color : color-mix(in srgb, var(--rp-color-indigo-9) 93%, var(--rp-color-black));
510
510
  --rp-color-indigo-outline : var(--rp-color-indigo-6);
511
511
  --rp-color-indigo-outline-hover : color-mix(in srgb, var(--rp-color-indigo-6) 5%, transparent);
512
512
  --rp-color-blue-filled : var(--rp-color-blue-8);
@@ -514,7 +514,7 @@
514
514
  --rp-color-blue-contrast : var(--rp-color-white);
515
515
  --rp-color-blue-light : var(--rp-color-blue-1);
516
516
  --rp-color-blue-light-hover : var(--rp-color-blue-2);
517
- --rp-color-blue-light-color : var(--rp-color-blue-9);
517
+ --rp-color-blue-light-color : color-mix(in srgb, var(--rp-color-blue-9) 92%, var(--rp-color-black));
518
518
  --rp-color-blue-outline : var(--rp-color-blue-6);
519
519
  --rp-color-blue-outline-hover : color-mix(in srgb, var(--rp-color-blue-6) 5%, transparent);
520
520
  --rp-color-cyan-filled : var(--rp-color-cyan-9);
@@ -522,7 +522,7 @@
522
522
  --rp-color-cyan-contrast : var(--rp-color-white);
523
523
  --rp-color-cyan-light : var(--rp-color-cyan-1);
524
524
  --rp-color-cyan-light-hover : var(--rp-color-cyan-2);
525
- --rp-color-cyan-light-color : var(--rp-color-cyan-9);
525
+ --rp-color-cyan-light-color : color-mix(in srgb, var(--rp-color-cyan-9) 93%, var(--rp-color-black));
526
526
  --rp-color-cyan-outline : var(--rp-color-cyan-6);
527
527
  --rp-color-cyan-outline-hover : color-mix(in srgb, var(--rp-color-cyan-6) 5%, transparent);
528
528
  --rp-color-teal-filled : var(--rp-color-teal-9);
@@ -530,7 +530,7 @@
530
530
  --rp-color-teal-contrast : var(--rp-color-white);
531
531
  --rp-color-teal-light : var(--rp-color-teal-1);
532
532
  --rp-color-teal-light-hover : var(--rp-color-teal-2);
533
- --rp-color-teal-light-color : var(--rp-color-teal-9);
533
+ --rp-color-teal-light-color : color-mix(in srgb, var(--rp-color-teal-9) 89%, var(--rp-color-black));
534
534
  --rp-color-teal-outline : var(--rp-color-teal-6);
535
535
  --rp-color-teal-outline-hover : color-mix(in srgb, var(--rp-color-teal-6) 5%, transparent);
536
536
  --rp-color-green-filled : color-mix(in srgb, var(--rp-color-green-9) 98%, var(--rp-color-black));
@@ -538,7 +538,7 @@
538
538
  --rp-color-green-contrast : var(--rp-color-white);
539
539
  --rp-color-green-light : var(--rp-color-green-1);
540
540
  --rp-color-green-light-hover : var(--rp-color-green-2);
541
- --rp-color-green-light-color : var(--rp-color-green-9);
541
+ --rp-color-green-light-color : color-mix(in srgb, var(--rp-color-green-9) 84%, var(--rp-color-black));
542
542
  --rp-color-green-outline : var(--rp-color-green-6);
543
543
  --rp-color-green-outline-hover : color-mix(in srgb, var(--rp-color-green-6) 5%, transparent);
544
544
  --rp-color-lime-filled : var(--rp-color-lime-6);
@@ -546,7 +546,7 @@
546
546
  --rp-color-lime-contrast : var(--rp-color-lime-6-contrast);
547
547
  --rp-color-lime-light : var(--rp-color-lime-1);
548
548
  --rp-color-lime-light-hover : var(--rp-color-lime-2);
549
- --rp-color-lime-light-color : var(--rp-color-lime-9);
549
+ --rp-color-lime-light-color : color-mix(in srgb, var(--rp-color-lime-9) 79%, var(--rp-color-black));
550
550
  --rp-color-lime-outline : var(--rp-color-lime-6);
551
551
  --rp-color-lime-outline-hover : color-mix(in srgb, var(--rp-color-lime-6) 5%, transparent);
552
552
  --rp-color-yellow-filled : var(--rp-color-yellow-6);
@@ -554,7 +554,7 @@
554
554
  --rp-color-yellow-contrast : var(--rp-color-yellow-6-contrast);
555
555
  --rp-color-yellow-light : var(--rp-color-yellow-1);
556
556
  --rp-color-yellow-light-hover : var(--rp-color-yellow-2);
557
- --rp-color-yellow-light-color : var(--rp-color-yellow-9);
557
+ --rp-color-yellow-light-color : color-mix(in srgb, var(--rp-color-yellow-9) 72%, var(--rp-color-black));
558
558
  --rp-color-yellow-outline : var(--rp-color-yellow-6);
559
559
  --rp-color-yellow-outline-hover : color-mix(in srgb, var(--rp-color-yellow-6) 5%, transparent);
560
560
  --rp-color-orange-filled : color-mix(in srgb, var(--rp-color-orange-9) 97%, var(--rp-color-black));
@@ -562,14 +562,14 @@
562
562
  --rp-color-orange-contrast : var(--rp-color-white);
563
563
  --rp-color-orange-light : var(--rp-color-orange-1);
564
564
  --rp-color-orange-light-hover : var(--rp-color-orange-2);
565
- --rp-color-orange-light-color : var(--rp-color-orange-9);
565
+ --rp-color-orange-light-color : color-mix(in srgb, var(--rp-color-orange-9) 81%, var(--rp-color-black));
566
566
  --rp-color-orange-outline : var(--rp-color-orange-6);
567
567
  --rp-color-orange-outline-hover : color-mix(in srgb, var(--rp-color-orange-6) 5%, transparent);
568
568
  --rp-color-scheme : light;
569
569
  --rp-color-bright : var(--rp-color-black);
570
570
  --rp-color-text : var(--rp-color-black);
571
571
  --rp-color-body : var(--rp-color-white);
572
- --rp-color-placeholder : var(--rp-color-gray-5);
572
+ --rp-color-placeholder : var(--rp-color-gray-7);
573
573
  --rp-color-default : var(--rp-color-white);
574
574
  --rp-color-default-hover : var(--rp-color-gray-1);
575
575
  --rp-color-default-color : var(--rp-color-black);
@@ -800,7 +800,7 @@ html.dark,
800
800
  --rp-color-bright : var(--rp-color-white);
801
801
  --rp-color-text : var(--rp-color-dark-0);
802
802
  --rp-color-body : var(--rp-color-dark-7);
803
- --rp-color-placeholder : var(--rp-color-dark-3);
803
+ --rp-color-placeholder : var(--rp-color-dark-1);
804
804
  --rp-color-default : var(--rp-color-dark-6);
805
805
  --rp-color-default-hover : var(--rp-color-dark-5);
806
806
  --rp-color-default-color : var(--rp-color-white);
@@ -229,7 +229,7 @@ $z-index-dropdown: 100 !default;
229
229
  $z-index-tooltip : 1000 !default;
230
230
 
231
231
  // Opacity
232
- $opacity-disabled: 0.5 !default;
232
+ $opacity-disabled: 0.65 !default;
233
233
 
234
234
  // Shadows
235
235
  $shadow-sm : 0 1px 2px 0 rgba(0, 0, 0, 0.05) !default;
@@ -1,167 +0,0 @@
1
- @layer ropav.components {
2
- .rp-button[data-v-dd8ef63e] {
3
- --_rp-button-bg: var(--rp-color-default);
4
- --_rp-button-bg-hover: var(--rp-color-default-hover);
5
- --_rp-button-bg-active: var(--rp-color-disabled);
6
- --_rp-button-border: var(--rp-color-default-border);
7
- --_rp-button-border-hover: var(--_rp-button-border);
8
- --_rp-button-border-active: var(--_rp-button-border-hover);
9
- --_rp-button-fg: var(--rp-color-default-color);
10
- --_rp-button-fg-hover: var(--_rp-button-fg);
11
- --_rp-button-fg-active: var(--_rp-button-fg-hover);
12
- --_rp-button-height: var(--rp-size-control-md);
13
- --_rp-button-padding-x: 22px;
14
- --_rp-button-font-size: var(--rp-font-size-md);
15
- --_rp-button-radius: var(--rp-radius-sm);
16
- --_rp-button-shadow: var(--rp-shadow-sm);
17
- --_rp-button-shadow-hover: var(--rp-shadow-base);
18
- --_rp-button-shadow-active: var(--rp-shadow-sm);
19
- display: inline-flex;
20
- align-items: center;
21
- justify-content: center;
22
- position: relative;
23
- box-sizing: border-box;
24
- font-family: var(--rp-font-family);
25
- font-weight: var(--rp-font-weight-medium);
26
- line-height: 1;
27
- appearance: none;
28
- background-color: var(--_rp-button-bg);
29
- border: var(--rp-border-width-thin) solid var(--_rp-button-border);
30
- box-shadow: var(--_rp-button-shadow);
31
- color: var(--_rp-button-fg);
32
- cursor: pointer;
33
- text-decoration: none;
34
- transition: border-color var(--rp-transition-fast), box-shadow var(--rp-transition-fast), transform var(--rp-transition-fast);
35
- white-space: nowrap;
36
- user-select: none;
37
- height: var(--_rp-button-height);
38
- padding: 0 var(--_rp-button-padding-x);
39
- font-size: var(--_rp-button-font-size);
40
- border-radius: var(--_rp-button-radius);
41
- }
42
- .rp-button[data-v-dd8ef63e]:hover:not(:disabled):not(.rp-button--disabled) {
43
- background-color: var(--_rp-button-bg-hover);
44
- border-color: var(--_rp-button-border-hover);
45
- box-shadow: var(--_rp-button-shadow-hover);
46
- color: var(--_rp-button-fg-hover);
47
- }
48
- .rp-button[data-v-dd8ef63e]:active:not(:disabled):not(.rp-button--disabled) {
49
- background-color: var(--_rp-button-bg-active);
50
- border-color: var(--_rp-button-border-active);
51
- box-shadow: var(--_rp-button-shadow-active);
52
- color: var(--_rp-button-fg-active);
53
- transform: translateY(1px);
54
- }
55
- .rp-button--size-xs[data-v-dd8ef63e] {
56
- --_rp-button-height: var(--rp-size-control-xs);
57
- --_rp-button-padding-x: 14px;
58
- --_rp-button-font-size: var(--rp-font-size-xs);
59
- }
60
- .rp-button--size-sm[data-v-dd8ef63e] {
61
- --_rp-button-height: var(--rp-size-control-sm);
62
- --_rp-button-padding-x: 18px;
63
- --_rp-button-font-size: var(--rp-font-size-sm);
64
- }
65
- .rp-button--size-md[data-v-dd8ef63e] {
66
- --_rp-button-height: var(--rp-size-control-md);
67
- --_rp-button-padding-x: 22px;
68
- --_rp-button-font-size: var(--rp-font-size-md);
69
- }
70
- .rp-button--size-lg[data-v-dd8ef63e] {
71
- --_rp-button-height: var(--rp-size-control-lg);
72
- --_rp-button-padding-x: 26px;
73
- --_rp-button-font-size: var(--rp-font-size-lg);
74
- }
75
- .rp-button--size-xl[data-v-dd8ef63e] {
76
- --_rp-button-height: var(--rp-size-control-xl);
77
- --_rp-button-padding-x: 32px;
78
- --_rp-button-font-size: var(--rp-font-size-xl);
79
- }
80
- .rp-button--radius-xs[data-v-dd8ef63e] {
81
- --_rp-button-radius: var(--rp-radius-xs);
82
- }
83
- .rp-button--radius-sm[data-v-dd8ef63e] {
84
- --_rp-button-radius: var(--rp-radius-sm);
85
- }
86
- .rp-button--radius-md[data-v-dd8ef63e] {
87
- --_rp-button-radius: var(--rp-radius-md);
88
- }
89
- .rp-button--radius-lg[data-v-dd8ef63e] {
90
- --_rp-button-radius: var(--rp-radius-lg);
91
- }
92
- .rp-button--radius-xl[data-v-dd8ef63e] {
93
- --_rp-button-radius: var(--rp-radius-xl);
94
- }
95
- .rp-button--subtle[data-v-dd8ef63e] {
96
- --_rp-button-shadow: none;
97
- --_rp-button-shadow-hover: none;
98
- --_rp-button-shadow-active: none;
99
- }
100
- .rp-button--surface[data-v-dd8ef63e] {
101
- --_rp-button-shadow: none;
102
- --_rp-button-shadow-hover: none;
103
- --_rp-button-shadow-active: none;
104
- }
105
- .rp-button--outline[data-v-dd8ef63e] {
106
- --_rp-button-shadow: none;
107
- --_rp-button-shadow-hover: none;
108
- --_rp-button-shadow-active: none;
109
- }
110
- .rp-button--ghost[data-v-dd8ef63e] {
111
- --_rp-button-shadow: none;
112
- --_rp-button-shadow-hover: none;
113
- --_rp-button-shadow-active: none;
114
- }
115
- .rp-button--plain[data-v-dd8ef63e] {
116
- --_rp-button-shadow: none;
117
- --_rp-button-shadow-hover: none;
118
- --_rp-button-shadow-active: none;
119
- }
120
- .rp-button[data-v-dd8ef63e]:disabled, .rp-button--disabled[data-v-dd8ef63e] {
121
- opacity: var(--rp-opacity-disabled);
122
- cursor: not-allowed;
123
- box-shadow: none;
124
- transform: none;
125
- }
126
- .rp-button[data-v-dd8ef63e]:focus-visible {
127
- outline: none;
128
- border-color: var(--rp-color-control-border-focus);
129
- box-shadow: 0 0 0 var(--rp-border-width-medium) var(--rp-color-focus-ring);
130
- }
131
- .rp-button--loading .rp-button__content[data-v-dd8ef63e] {
132
- opacity: 0;
133
- }
134
- .rp-button__content[data-v-dd8ef63e] {
135
- display: inline-flex;
136
- align-items: center;
137
- justify-content: center;
138
- gap: var(--rp-spacing-2);
139
- }
140
- .rp-button__left[data-v-dd8ef63e], .rp-button__right[data-v-dd8ef63e] {
141
- display: inline-flex;
142
- align-items: center;
143
- flex-shrink: 0;
144
- }
145
- .rp-button__loading[data-v-dd8ef63e] {
146
- display: inline-flex;
147
- align-items: center;
148
- justify-content: center;
149
- position: absolute;
150
- top: 50%;
151
- left: 50%;
152
- translate: -50% -50%;
153
- }
154
- .rp-button__spinner[data-v-dd8ef63e] {
155
- display: block;
156
- width: 1em;
157
- height: 1em;
158
- flex-shrink: 0;
159
- transform-origin: center;
160
- animation: rp-spinner-spin-dd8ef63e 700ms linear infinite;
161
- }
162
- @keyframes rp-spinner-spin-dd8ef63e {
163
- to {
164
- transform: rotate(360deg);
165
- }
166
- }
167
- }
@@ -1,3 +0,0 @@
1
- import { DropdownMenuInteractOutsideTarget } from './types.js';
2
- export declare function isEventWithinElement(event: Event, element: Element): boolean;
3
- export declare function isEventWithinTargets(event: Event, targets: readonly DropdownMenuInteractOutsideTarget[]): boolean;
@@ -1,21 +0,0 @@
1
- import { DropdownMenuFocusTarget, DropdownMenuItem, DropdownMenuItemPath, DropdownMenuOpenOptions, DropdownMenuPlacement } from './types.js';
2
- export declare const DEFAULT_PLACEMENT: DropdownMenuPlacement;
3
- export declare const DEFAULT_FOCUS_TARGET: DropdownMenuFocusTarget;
4
- export type ItemPath = DropdownMenuItemPath;
5
- export type SubmenuFocusTarget = DropdownMenuFocusTarget | false;
6
- export type PointerPoint = {
7
- x: number;
8
- y: number;
9
- };
10
- export declare function getOpenFocusTarget(options: DropdownMenuOpenOptions | DropdownMenuFocusTarget | undefined): DropdownMenuFocusTarget;
11
- export declare function getItemClass(item: DropdownMenuItem, focused: boolean, disabled: boolean, hasSubmenu: boolean, submenuOpen: boolean): string[];
12
- export declare function hasItemSubmenu(item: DropdownMenuItem): boolean;
13
- export declare function hasNestedItems(items: DropdownMenuItem[]): boolean;
14
- export declare function getPathKey(path: ItemPath): string;
15
- export declare function getParentPath(path: ItemPath): number[];
16
- export declare function arePathsEqual(a: ItemPath, b: ItemPath): boolean;
17
- export declare function isPathPrefix(prefix: ItemPath, path: ItemPath): boolean;
18
- export declare function normalizePath(indexOrPath: number | ItemPath): ItemPath;
19
- export declare function getEventPoint(event: MouseEvent): PointerPoint;
20
- export declare function hasMeasuredRect(rect: DOMRect): boolean;
21
- export declare function isPointInRect(point: PointerPoint, rect: DOMRect, padding?: number): boolean;
@@ -1,37 +0,0 @@
1
- import { Ref } from 'vue';
2
- import { OverlayLayerContext } from '../../composables/useOverlayLayer.js';
3
- import { DropdownMenuCloseOptions, DropdownMenuFocusTarget, DropdownMenuInteractOutsideEvent, DropdownMenuItem, DropdownMenuOpenOptions, DropdownMenuProps, DropdownMenuSelectEvent } from './types.js';
4
- import { ItemPath } from './dropdown-menu-utils.js';
5
- type BooleanSource = Readonly<Ref<boolean>>;
6
- type UseDropdownMenuDisclosureOptions = {
7
- props: Readonly<DropdownMenuProps>;
8
- emit: {
9
- openChange?: (open: boolean) => void;
10
- select?: (item: DropdownMenuItem, event: DropdownMenuSelectEvent) => void;
11
- pointerDownOutside?: (event: DropdownMenuInteractOutsideEvent) => void;
12
- focusOutside?: (event: DropdownMenuInteractOutsideEvent) => void;
13
- interactOutside?: (event: DropdownMenuInteractOutsideEvent) => void;
14
- };
15
- rootRef: Ref<HTMLElement | null>;
16
- menuRef: Ref<HTMLElement | null>;
17
- targetRef: Readonly<Ref<Element | null>>;
18
- uncontrolledOpen: Ref<boolean>;
19
- isDisabled: BooleanSource;
20
- isOpen: BooleanSource;
21
- isVisible: BooleanSource;
22
- focusedPath: Ref<ItemPath>;
23
- resetFocus: () => void;
24
- resetSubmenus: () => void;
25
- resetHoverIntent: () => void;
26
- focusItem: (target: DropdownMenuFocusTarget, menuPath?: ItemPath) => boolean;
27
- focusMenu: () => void;
28
- focusTrigger: () => void;
29
- layer: OverlayLayerContext;
30
- };
31
- export declare function useDropdownMenuDisclosure({ props, emit, rootRef, menuRef, targetRef, uncontrolledOpen, isDisabled, isOpen, isVisible, focusedPath, resetFocus, resetSubmenus, resetHoverIntent, focusItem, focusMenu, focusTrigger, layer, }: UseDropdownMenuDisclosureOptions): {
32
- open: (options?: DropdownMenuOpenOptions | DropdownMenuFocusTarget) => void;
33
- close: (options?: DropdownMenuCloseOptions) => void;
34
- toggle: () => void;
35
- resetMenuFocus: () => void;
36
- };
37
- export {};
@@ -1,29 +0,0 @@
1
- import { Ref } from 'vue';
2
- import { DropdownMenuPlacement } from './types.js';
3
- import { ItemPath } from './dropdown-menu-utils.js';
4
- type StringSource = {
5
- readonly value: string;
6
- };
7
- type PlacementSource = {
8
- readonly value: DropdownMenuPlacement;
9
- };
10
- type UseDropdownMenuDomOptions = {
11
- menuId: StringSource;
12
- rootRef: Ref<HTMLElement | null>;
13
- menuRef: Ref<HTMLElement | null>;
14
- targetRef: Readonly<Ref<Element | null>>;
15
- placement: PlacementSource;
16
- focusedPath: Ref<ItemPath>;
17
- };
18
- export declare function useDropdownMenuDom({ menuId, rootRef, menuRef, targetRef, placement, focusedPath, }: UseDropdownMenuDomOptions): {
19
- activeDescendantId: import('vue').ComputedRef<string | undefined>;
20
- focusMenu: () => void;
21
- focusTrigger: () => void;
22
- getItemId: (indexOrPath: number | ItemPath) => string;
23
- getSubmenuId: (path: ItemPath) => string;
24
- getItemElement: (path: ItemPath) => HTMLElement | null;
25
- getSubmenuElement: (path: ItemPath) => HTMLElement | null;
26
- isSubmenuOpeningLeft: (path: ItemPath) => boolean;
27
- getMenuActiveDescendant: (menuPath: ItemPath) => string | undefined;
28
- };
29
- export {};
@@ -1,52 +0,0 @@
1
- import { Ref } from 'vue';
2
- import { DropdownMenuCloseOptions, DropdownMenuFocusTarget, DropdownMenuItem, DropdownMenuOpenOptions, DropdownMenuProps, DropdownMenuSelectEvent } from './types.js';
3
- import { ItemPath, PointerPoint, SubmenuFocusTarget } from './dropdown-menu-utils.js';
4
- type BooleanSource = Readonly<Ref<boolean>>;
5
- type DisclosureControls = {
6
- open: (options?: DropdownMenuOpenOptions | DropdownMenuFocusTarget) => void;
7
- close: (options?: DropdownMenuCloseOptions) => void;
8
- toggle: () => void;
9
- };
10
- type SubmenuControls = {
11
- closeSubmenusAfter: (menuPath: ItemPath) => void;
12
- openSubmenu: (path: ItemPath, focus?: SubmenuFocusTarget) => boolean;
13
- closeSubmenu: (path: ItemPath) => boolean;
14
- closeCurrentSubmenu: () => boolean;
15
- };
16
- type HoverIntentControls = {
17
- clearPendingHover: () => void;
18
- resetHoverIntent: () => void;
19
- trackSubmenuOpen: (path: ItemPath, point?: PointerPoint) => void;
20
- handleItemHover: (item: DropdownMenuItem, path: ItemPath, event: MouseEvent | undefined, commit: (item: DropdownMenuItem, path: ItemPath, point?: PointerPoint) => void) => void;
21
- handleMenuMousemove: (event: MouseEvent, commit: (item: DropdownMenuItem, path: ItemPath, point?: PointerPoint) => void) => void;
22
- };
23
- type UseDropdownMenuInteractionsOptions = {
24
- props: Readonly<DropdownMenuProps>;
25
- emit: {
26
- select?: (item: DropdownMenuItem, event: DropdownMenuSelectEvent) => void;
27
- };
28
- isDisabled: BooleanSource;
29
- focusedPath: Ref<ItemPath>;
30
- openSubmenuPath: Ref<ItemPath>;
31
- getItemAtPath: (path: ItemPath) => DropdownMenuItem | undefined;
32
- focusItem: (target: DropdownMenuFocusTarget, menuPath?: ItemPath) => boolean;
33
- moveFocus: (direction: 1 | -1) => ItemPath | undefined;
34
- handleTypeahead: (event: KeyboardEvent) => boolean;
35
- submenus: SubmenuControls;
36
- hoverIntent: HoverIntentControls;
37
- disclosure: DisclosureControls;
38
- isSubmenuOpeningLeft: (path: ItemPath) => boolean;
39
- };
40
- export declare function useDropdownMenuInteractions({ props, emit, isDisabled, focusedPath, openSubmenuPath, getItemAtPath, focusItem, moveFocus, handleTypeahead, submenus, hoverIntent, disclosure, isSubmenuOpeningLeft, }: UseDropdownMenuInteractionsOptions): {
41
- activateItem: (item: DropdownMenuItem, path: ItemPath, event?: MouseEvent | KeyboardEvent) => void;
42
- selectItem: (item: DropdownMenuItem, originalEvent?: Event) => void;
43
- openSubmenu: (path: ItemPath, focus?: SubmenuFocusTarget, point?: PointerPoint) => boolean;
44
- closeSubmenu: (path: ItemPath) => boolean;
45
- focusHoveredItem: (item: DropdownMenuItem, indexOrPath: number | ItemPath, event?: MouseEvent) => void;
46
- onTriggerClick: () => void;
47
- onTriggerKeydown: (event: KeyboardEvent) => void;
48
- onMenuKeydown: (event: KeyboardEvent) => void;
49
- onMenuMousemove: (event: MouseEvent) => void;
50
- onMenuMouseleave: () => void;
51
- };
52
- export {};