@soybeanjs/headless 0.14.0 → 0.15.0-beta.1

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 (505) hide show
  1. package/README.md +72 -1
  2. package/README.zh-CN.md +73 -2
  3. package/dist/_virtual/_@oxc-project_runtime@0.126.0/helpers/defineProperty.js +1 -0
  4. package/dist/_virtual/_@oxc-project_runtime@0.126.0/helpers/toPrimitive.js +1 -0
  5. package/dist/_virtual/_@oxc-project_runtime@0.126.0/helpers/toPropertyKey.js +1 -0
  6. package/dist/_virtual/_@oxc-project_runtime@0.126.0/helpers/typeof.js +1 -0
  7. package/dist/components/accordion/accordion-compact.js +1 -0
  8. package/dist/components/accordion/accordion-compact.vue.d.ts +21 -0
  9. package/dist/components/accordion/accordion-content.js +1 -1
  10. package/dist/components/accordion/accordion-content.vue.d.ts +2 -2
  11. package/dist/components/accordion/accordion-header.js +1 -1
  12. package/dist/components/accordion/accordion-item.js +1 -1
  13. package/dist/components/accordion/accordion-root.js +1 -1
  14. package/dist/components/accordion/accordion-trigger.js +1 -1
  15. package/dist/components/accordion/accordion-trigger.vue.d.ts +2 -2
  16. package/dist/components/accordion/context.js +1 -1
  17. package/dist/components/accordion/index.d.ts +8 -8
  18. package/dist/components/accordion/index.js +1 -1
  19. package/dist/components/accordion/types.d.ts +38 -2
  20. package/dist/components/affix/affix-content.js +1 -0
  21. package/dist/components/affix/affix-content.vue.d.ts +20 -0
  22. package/dist/components/affix/affix-placeholder.js +1 -0
  23. package/dist/components/affix/affix-placeholder.vue.d.ts +8 -0
  24. package/dist/components/affix/affix-root.js +1 -0
  25. package/dist/components/affix/affix-root.vue.d.ts +28 -0
  26. package/dist/components/affix/context.d.ts +8 -0
  27. package/dist/components/affix/context.js +1 -0
  28. package/dist/components/affix/index.d.ts +6 -0
  29. package/dist/components/affix/index.js +1 -0
  30. package/dist/components/affix/shared.js +1 -0
  31. package/dist/components/affix/types.d.ts +39 -0
  32. package/dist/components/alert-dialog/alert-dialog-content.vue.d.ts +2 -2
  33. package/dist/components/anchor/anchor-link.js +1 -0
  34. package/dist/components/{toast/toast-close.vue.d.ts → anchor/anchor-link.vue.d.ts} +3 -3
  35. package/dist/components/anchor/anchor-root.js +1 -0
  36. package/dist/components/anchor/anchor-root.vue.d.ts +38 -0
  37. package/dist/components/anchor/context.d.ts +8 -0
  38. package/dist/components/anchor/context.js +1 -0
  39. package/dist/components/anchor/index.d.ts +5 -0
  40. package/dist/components/anchor/index.js +1 -0
  41. package/dist/components/anchor/shared.js +1 -0
  42. package/dist/components/anchor/types.d.ts +32 -0
  43. package/dist/components/autocomplete/autocomplete-anchor.js +1 -0
  44. package/dist/components/autocomplete/autocomplete-anchor.vue.d.ts +21 -0
  45. package/dist/components/autocomplete/autocomplete-content.js +1 -0
  46. package/dist/components/autocomplete/autocomplete-content.vue.d.ts +24 -0
  47. package/dist/components/autocomplete/autocomplete-group-label.js +1 -0
  48. package/dist/components/autocomplete/autocomplete-group-label.vue.d.ts +18 -0
  49. package/dist/components/autocomplete/autocomplete-group.js +1 -0
  50. package/dist/components/autocomplete/autocomplete-group.vue.d.ts +18 -0
  51. package/dist/components/autocomplete/autocomplete-input.js +1 -0
  52. package/dist/components/autocomplete/autocomplete-input.vue.d.ts +28 -0
  53. package/dist/components/autocomplete/autocomplete-item-indicator.js +1 -0
  54. package/dist/components/autocomplete/autocomplete-item-indicator.vue.d.ts +18 -0
  55. package/dist/components/autocomplete/autocomplete-item.js +1 -0
  56. package/dist/components/autocomplete/autocomplete-item.vue.d.ts +26 -0
  57. package/dist/components/autocomplete/autocomplete-root.js +1 -0
  58. package/dist/components/autocomplete/autocomplete-root.vue.d.ts +35 -0
  59. package/dist/components/autocomplete/autocomplete-separator.js +1 -0
  60. package/dist/components/autocomplete/autocomplete-separator.vue.d.ts +18 -0
  61. package/dist/components/autocomplete/autocomplete-trigger.js +1 -0
  62. package/dist/components/autocomplete/autocomplete-trigger.vue.d.ts +21 -0
  63. package/dist/components/autocomplete/autocomplete-viewport.js +1 -0
  64. package/dist/components/autocomplete/autocomplete-viewport.vue.d.ts +18 -0
  65. package/dist/components/autocomplete/context.d.ts +8 -0
  66. package/dist/components/autocomplete/context.js +1 -0
  67. package/dist/components/autocomplete/index.d.ts +16 -0
  68. package/dist/components/autocomplete/index.js +1 -0
  69. package/dist/components/autocomplete/types.d.ts +57 -0
  70. package/dist/components/carousel/carousel-content.js +1 -0
  71. package/dist/components/carousel/carousel-content.vue.d.ts +18 -0
  72. package/dist/components/carousel/carousel-item.js +1 -0
  73. package/dist/components/carousel/carousel-item.vue.d.ts +18 -0
  74. package/dist/components/carousel/carousel-next.js +1 -0
  75. package/dist/components/carousel/carousel-next.vue.d.ts +28 -0
  76. package/dist/components/carousel/carousel-previous.js +1 -0
  77. package/dist/components/carousel/carousel-previous.vue.d.ts +28 -0
  78. package/dist/components/carousel/carousel-root.js +1 -0
  79. package/dist/components/carousel/carousel-root.vue.d.ts +15 -0
  80. package/dist/components/carousel/context.d.ts +8 -0
  81. package/dist/components/carousel/context.js +1 -0
  82. package/dist/components/carousel/index.d.ts +8 -0
  83. package/dist/components/carousel/index.js +1 -0
  84. package/dist/components/carousel/types.d.ts +26 -0
  85. package/dist/components/checkbox/checkbox-group-root.js +1 -1
  86. package/dist/components/collapsible/collapsible-root.vue.d.ts +1 -1
  87. package/dist/components/color-area/color-area-area.js +1 -0
  88. package/dist/components/{toast/toast-viewport.vue.d.ts → color-area/color-area-area.vue.d.ts} +3 -5
  89. package/dist/components/color-area/color-area-root.js +1 -0
  90. package/dist/components/color-area/color-area-root.vue.d.ts +39 -0
  91. package/dist/components/color-area/color-area-thumb.js +1 -0
  92. package/dist/components/color-area/color-area-thumb.vue.d.ts +21 -0
  93. package/dist/components/color-area/context.d.ts +8 -0
  94. package/dist/components/color-area/context.js +1 -0
  95. package/dist/components/color-area/index.d.ts +6 -0
  96. package/dist/components/color-area/index.js +1 -0
  97. package/dist/components/color-area/shared.js +1 -0
  98. package/dist/components/color-area/types.d.ts +31 -0
  99. package/dist/components/color-field/color-field-input.js +1 -0
  100. package/dist/components/color-field/color-field-input.vue.d.ts +8 -0
  101. package/dist/components/color-field/color-field-root.js +1 -0
  102. package/dist/components/color-field/color-field-root.vue.d.ts +36 -0
  103. package/dist/components/color-field/context.d.ts +8 -0
  104. package/dist/components/color-field/context.js +1 -0
  105. package/dist/components/color-field/index.d.ts +5 -0
  106. package/dist/components/color-field/index.js +1 -0
  107. package/dist/components/color-field/types.d.ts +28 -0
  108. package/dist/components/color-picker/color-picker-root.js +1 -0
  109. package/dist/components/color-picker/color-picker-root.vue.d.ts +40 -0
  110. package/dist/components/color-picker/index.d.ts +3 -0
  111. package/dist/components/color-picker/index.js +1 -0
  112. package/dist/components/color-picker/types.d.ts +24 -0
  113. package/dist/components/color-slider/color-slider-root.js +1 -0
  114. package/dist/components/color-slider/color-slider-root.vue.d.ts +39 -0
  115. package/dist/components/color-slider/color-slider-thumb.js +1 -0
  116. package/dist/components/color-slider/color-slider-thumb.vue.d.ts +21 -0
  117. package/dist/components/color-slider/color-slider-track.js +1 -0
  118. package/dist/components/color-slider/color-slider-track.vue.d.ts +18 -0
  119. package/dist/components/color-slider/context.d.ts +8 -0
  120. package/dist/components/color-slider/context.js +1 -0
  121. package/dist/components/color-slider/index.d.ts +6 -0
  122. package/dist/components/color-slider/index.js +1 -0
  123. package/dist/components/color-slider/types.d.ts +31 -0
  124. package/dist/components/color-swatch/color-swatch.js +1 -0
  125. package/dist/components/color-swatch/color-swatch.vue.d.ts +26 -0
  126. package/dist/components/color-swatch/index.d.ts +3 -0
  127. package/dist/components/color-swatch/index.js +1 -0
  128. package/dist/components/color-swatch/types.d.ts +11 -0
  129. package/dist/components/color-swatch-picker/color-swatch-picker-item-indicator.js +1 -0
  130. package/dist/components/color-swatch-picker/color-swatch-picker-item-indicator.vue.d.ts +18 -0
  131. package/dist/components/color-swatch-picker/color-swatch-picker-item-swatch.js +1 -0
  132. package/dist/components/color-swatch-picker/color-swatch-picker-item-swatch.vue.d.ts +18 -0
  133. package/dist/components/color-swatch-picker/color-swatch-picker-item.js +1 -0
  134. package/dist/components/color-swatch-picker/color-swatch-picker-item.vue.d.ts +23 -0
  135. package/dist/components/color-swatch-picker/color-swatch-picker-root.js +1 -0
  136. package/dist/components/color-swatch-picker/color-swatch-picker-root.vue.d.ts +30 -0
  137. package/dist/components/color-swatch-picker/context.d.ts +8 -0
  138. package/dist/components/color-swatch-picker/context.js +1 -0
  139. package/dist/components/color-swatch-picker/index.d.ts +7 -0
  140. package/dist/components/color-swatch-picker/index.js +1 -0
  141. package/dist/components/color-swatch-picker/types.d.ts +18 -0
  142. package/dist/components/combobox/combobox-content.js +1 -0
  143. package/dist/components/combobox/combobox-content.vue.d.ts +36 -0
  144. package/dist/components/combobox/combobox-empty.js +1 -0
  145. package/dist/components/combobox/combobox-empty.vue.d.ts +18 -0
  146. package/dist/components/combobox/combobox-group-label.js +1 -0
  147. package/dist/components/combobox/combobox-group-label.vue.d.ts +18 -0
  148. package/dist/components/combobox/combobox-group.js +1 -0
  149. package/dist/components/combobox/combobox-group.vue.d.ts +18 -0
  150. package/dist/components/combobox/combobox-input.js +1 -0
  151. package/dist/components/combobox/combobox-input.vue.d.ts +28 -0
  152. package/dist/components/combobox/combobox-item-indicator.js +1 -0
  153. package/dist/components/combobox/combobox-item-indicator.vue.d.ts +21 -0
  154. package/dist/components/combobox/combobox-item.js +1 -0
  155. package/dist/components/combobox/combobox-item.vue.d.ts +23 -0
  156. package/dist/components/combobox/combobox-root.js +1 -0
  157. package/dist/components/combobox/combobox-root.vue.d.ts +32 -0
  158. package/dist/components/combobox/combobox-separator.js +1 -0
  159. package/dist/components/combobox/combobox-separator.vue.d.ts +18 -0
  160. package/dist/components/combobox/combobox-trigger.js +1 -0
  161. package/dist/components/combobox/combobox-trigger.vue.d.ts +24 -0
  162. package/dist/components/combobox/combobox-viewport.js +9 -0
  163. package/dist/components/combobox/combobox-viewport.vue.d.ts +18 -0
  164. package/dist/components/combobox/context.d.ts +8 -0
  165. package/dist/components/combobox/context.js +1 -0
  166. package/dist/components/combobox/index.d.ts +16 -0
  167. package/dist/components/combobox/index.js +1 -0
  168. package/dist/components/combobox/types.d.ts +49 -0
  169. package/dist/components/config-provider/config-provider.js +1 -1
  170. package/dist/components/config-provider/config-provider.vue.d.ts +1 -1
  171. package/dist/components/config-provider/types.d.ts +8 -0
  172. package/dist/components/context-menu/context-menu-checkbox-compact.js +1 -0
  173. package/dist/components/context-menu/context-menu-checkbox-compact.vue.d.ts +33 -0
  174. package/dist/components/context-menu/context-menu-compact.js +1 -0
  175. package/dist/components/context-menu/context-menu-compact.vue.d.ts +32 -0
  176. package/dist/components/context-menu/context-menu-content.vue.d.ts +4 -4
  177. package/dist/components/context-menu/context-menu-radio-compact.js +1 -0
  178. package/dist/components/context-menu/context-menu-radio-compact.vue.d.ts +33 -0
  179. package/dist/components/context-menu/context-menu-trigger.js +1 -1
  180. package/dist/components/context-menu/context-menu-wrapper-compact.js +1 -0
  181. package/dist/components/context-menu/context-menu-wrapper-compact.vue.d.ts +41 -0
  182. package/dist/components/context-menu/index.d.ts +23 -19
  183. package/dist/components/context-menu/index.js +1 -1
  184. package/dist/components/context-menu/types.d.ts +30 -2
  185. package/dist/components/dialog/dialog-content.vue.d.ts +2 -2
  186. package/dist/components/dropdown-menu/dropdown-menu-checkbox-compact.js +1 -0
  187. package/dist/components/dropdown-menu/dropdown-menu-checkbox-compact.vue.d.ts +33 -0
  188. package/dist/components/dropdown-menu/dropdown-menu-compact.js +1 -0
  189. package/dist/components/dropdown-menu/dropdown-menu-compact.vue.d.ts +32 -0
  190. package/dist/components/dropdown-menu/dropdown-menu-content.vue.d.ts +7 -7
  191. package/dist/components/dropdown-menu/dropdown-menu-radio-compact.js +1 -0
  192. package/dist/components/dropdown-menu/dropdown-menu-radio-compact.vue.d.ts +33 -0
  193. package/dist/components/dropdown-menu/dropdown-menu-root.vue.d.ts +1 -1
  194. package/dist/components/dropdown-menu/dropdown-menu-trigger.vue.d.ts +2 -2
  195. package/dist/components/dropdown-menu/dropdown-menu-wrapper-compact.js +1 -0
  196. package/dist/components/dropdown-menu/dropdown-menu-wrapper-compact.vue.d.ts +42 -0
  197. package/dist/components/dropdown-menu/index.d.ts +24 -20
  198. package/dist/components/dropdown-menu/index.js +1 -1
  199. package/dist/components/dropdown-menu/types.d.ts +33 -2
  200. package/dist/components/editable/context.d.ts +8 -0
  201. package/dist/components/editable/context.js +1 -0
  202. package/dist/components/editable/editable-area.js +1 -0
  203. package/dist/components/editable/editable-area.vue.d.ts +21 -0
  204. package/dist/components/editable/editable-cancel-trigger.js +1 -0
  205. package/dist/components/editable/editable-cancel-trigger.vue.d.ts +21 -0
  206. package/dist/components/editable/editable-edit-trigger.js +1 -0
  207. package/dist/components/editable/editable-edit-trigger.vue.d.ts +21 -0
  208. package/dist/components/editable/editable-input.js +1 -0
  209. package/dist/components/editable/editable-input.vue.d.ts +18 -0
  210. package/dist/components/editable/editable-preview.js +1 -0
  211. package/dist/components/editable/editable-preview.vue.d.ts +21 -0
  212. package/dist/components/editable/editable-root.js +1 -0
  213. package/dist/components/editable/editable-root.vue.d.ts +52 -0
  214. package/dist/components/editable/editable-submit-trigger.js +1 -0
  215. package/dist/components/editable/editable-submit-trigger.vue.d.ts +21 -0
  216. package/dist/components/editable/index.d.ts +10 -0
  217. package/dist/components/editable/index.js +1 -0
  218. package/dist/components/editable/types.d.ts +59 -0
  219. package/dist/components/empty/context.d.ts +8 -0
  220. package/dist/components/empty/context.js +1 -0
  221. package/dist/components/empty/empty-content.js +1 -0
  222. package/dist/components/empty/empty-content.vue.d.ts +18 -0
  223. package/dist/components/empty/empty-description.js +1 -0
  224. package/dist/components/{toast/toast-description.vue.d.ts → empty/empty-description.vue.d.ts} +3 -3
  225. package/dist/components/empty/empty-header.js +1 -0
  226. package/dist/components/empty/empty-header.vue.d.ts +18 -0
  227. package/dist/components/empty/empty-media.js +1 -0
  228. package/dist/components/{toast/toast-title.vue.d.ts → empty/empty-media.vue.d.ts} +3 -3
  229. package/dist/components/empty/empty-root.js +1 -0
  230. package/dist/components/empty/empty-root.vue.d.ts +18 -0
  231. package/dist/components/empty/empty-title.js +1 -0
  232. package/dist/components/empty/empty-title.vue.d.ts +18 -0
  233. package/dist/components/empty/index.d.ts +9 -0
  234. package/dist/components/empty/index.js +1 -0
  235. package/dist/components/empty/types.d.ts +14 -0
  236. package/dist/components/hover-card/context.js +1 -0
  237. package/dist/components/hover-card/hover-card-popup.js +1 -0
  238. package/dist/components/hover-card/hover-card-popup.vue.d.ts +18 -0
  239. package/dist/components/hover-card/hover-card-positioner-impl.js +1 -0
  240. package/dist/components/hover-card/hover-card-positioner.js +1 -0
  241. package/dist/components/hover-card/hover-card-positioner.vue.d.ts +29 -0
  242. package/dist/components/hover-card/hover-card-root.js +1 -0
  243. package/dist/components/hover-card/hover-card-root.vue.d.ts +29 -0
  244. package/dist/components/hover-card/hover-card-trigger.js +1 -0
  245. package/dist/components/hover-card/hover-card-trigger.vue.d.ts +21 -0
  246. package/dist/components/hover-card/index.d.ts +11 -0
  247. package/dist/components/hover-card/index.js +1 -0
  248. package/dist/components/hover-card/shared.js +1 -0
  249. package/dist/components/hover-card/types.d.ts +27 -0
  250. package/dist/components/icon/icon-render.js +1 -0
  251. package/dist/components/icon/icon-render.vue.d.ts +8 -0
  252. package/dist/components/icon/index.d.ts +3 -0
  253. package/dist/components/icon/index.js +1 -0
  254. package/dist/components/icon/types.d.ts +9 -0
  255. package/dist/components/input/input-control.js +1 -1
  256. package/dist/components/input-number/input-number-root.vue.d.ts +1 -1
  257. package/dist/components/kbd/kbd.js +1 -1
  258. package/dist/components/kbd/kbd.vue.d.ts +3 -1
  259. package/dist/components/link/link.js +1 -1
  260. package/dist/components/link/link.vue.d.ts +1 -1
  261. package/dist/components/listbox/listbox-filter.js +1 -1
  262. package/dist/components/listbox/listbox-root.vue.d.ts +2 -2
  263. package/dist/components/listbox/types.d.ts +1 -1
  264. package/dist/components/menu/context.js +1 -1
  265. package/dist/components/menu/hooks.js +1 -0
  266. package/dist/components/menu/index.d.ts +20 -16
  267. package/dist/components/menu/index.js +1 -1
  268. package/dist/components/menu/menu-checkbox-options-compact.js +1 -0
  269. package/dist/components/menu/menu-checkbox-options-compact.vue.d.ts +23 -0
  270. package/dist/components/menu/menu-content-impl.js +1 -1
  271. package/dist/components/menu/menu-content.vue.d.ts +4 -4
  272. package/dist/components/menu/menu-item-slot-compact.js +1 -0
  273. package/dist/components/menu/menu-option-compact.js +1 -0
  274. package/dist/components/menu/menu-option-compact.vue.d.ts +31 -0
  275. package/dist/components/menu/menu-options-compact.js +1 -0
  276. package/dist/components/menu/menu-options-compact.vue.d.ts +31 -0
  277. package/dist/components/menu/menu-radio-options-compact.js +1 -0
  278. package/dist/components/menu/menu-radio-options-compact.vue.d.ts +23 -0
  279. package/dist/components/menu/menu-root.js +1 -1
  280. package/dist/components/menu/menu-sub-content.js +1 -1
  281. package/dist/components/menu/menu-sub-content.vue.d.ts +4 -4
  282. package/dist/components/menu/menu-sub-trigger.js +1 -1
  283. package/dist/components/menu/shared.js +1 -1
  284. package/dist/components/menu/types.d.ts +119 -4
  285. package/dist/components/menubar/context.d.ts +8 -0
  286. package/dist/components/menubar/context.js +1 -0
  287. package/dist/components/menubar/index.d.ts +22 -0
  288. package/dist/components/menubar/index.js +1 -0
  289. package/dist/components/menubar/menubar-compact.js +1 -0
  290. package/dist/components/menubar/menubar-compact.vue.d.ts +33 -0
  291. package/dist/components/menubar/menubar-content.js +1 -0
  292. package/dist/components/menubar/menubar-content.vue.d.ts +38 -0
  293. package/dist/components/menubar/menubar-menu.js +1 -0
  294. package/dist/components/menubar/menubar-menu.vue.d.ts +22 -0
  295. package/dist/components/menubar/menubar-root.js +1 -0
  296. package/dist/components/menubar/menubar-root.vue.d.ts +29 -0
  297. package/dist/components/menubar/menubar-sub-content.js +1 -0
  298. package/dist/components/menubar/menubar-sub-content.vue.d.ts +35 -0
  299. package/dist/components/menubar/menubar-sub-trigger.js +1 -0
  300. package/dist/components/menubar/menubar-sub-trigger.vue.d.ts +18 -0
  301. package/dist/components/menubar/menubar-trigger.js +1 -0
  302. package/dist/components/menubar/menubar-trigger.vue.d.ts +21 -0
  303. package/dist/components/menubar/shared.js +1 -0
  304. package/dist/components/menubar/types.d.ts +54 -0
  305. package/dist/components/navigation-menu/navigation-menu-root.vue.d.ts +1 -1
  306. package/dist/components/popover/index.d.ts +2 -2
  307. package/dist/components/popover/popover-positioner.vue.d.ts +2 -2
  308. package/dist/components/popper/popper-positioner.vue.d.ts +2 -2
  309. package/dist/components/progress/context.d.ts +8 -0
  310. package/dist/components/progress/context.js +1 -0
  311. package/dist/components/progress/index.d.ts +6 -0
  312. package/dist/components/progress/index.js +1 -0
  313. package/dist/components/progress/progress-circle.js +1 -0
  314. package/dist/components/progress/progress-circle.vue.d.ts +25 -0
  315. package/dist/components/progress/progress-indicator.js +1 -0
  316. package/dist/components/progress/progress-indicator.vue.d.ts +21 -0
  317. package/dist/components/progress/progress-root.js +1 -0
  318. package/dist/components/progress/progress-root.vue.d.ts +33 -0
  319. package/dist/components/progress/shared.js +1 -0
  320. package/dist/components/progress/types.d.ts +34 -0
  321. package/dist/components/radio-group/radio-group-root.js +1 -1
  322. package/dist/components/roving-focus/roving-focus-group.vue.d.ts +1 -1
  323. package/dist/components/scroll-area/context.d.ts +8 -0
  324. package/dist/components/scroll-area/context.js +1 -0
  325. package/dist/components/scroll-area/index.d.ts +8 -0
  326. package/dist/components/scroll-area/index.js +1 -0
  327. package/dist/components/scroll-area/scroll-area-corner.js +1 -0
  328. package/dist/components/scroll-area/scroll-area-corner.vue.d.ts +21 -0
  329. package/dist/components/scroll-area/scroll-area-root.js +1 -0
  330. package/dist/components/scroll-area/scroll-area-root.vue.d.ts +23 -0
  331. package/dist/components/scroll-area/scroll-area-scrollbar.js +1 -0
  332. package/dist/components/scroll-area/scroll-area-scrollbar.vue.d.ts +22 -0
  333. package/dist/components/scroll-area/scroll-area-thumb.js +1 -0
  334. package/dist/components/scroll-area/scroll-area-thumb.vue.d.ts +21 -0
  335. package/dist/components/scroll-area/scroll-area-viewport.js +1 -0
  336. package/dist/components/scroll-area/scroll-area-viewport.vue.d.ts +21 -0
  337. package/dist/components/scroll-area/shared.js +1 -0
  338. package/dist/components/scroll-area/types.d.ts +31 -0
  339. package/dist/components/select/select-content.vue.d.ts +3 -3
  340. package/dist/components/select/select-viewport.js +1 -1
  341. package/dist/components/skeleton/index.d.ts +3 -0
  342. package/dist/components/skeleton/index.js +1 -0
  343. package/dist/components/skeleton/skeleton.js +1 -0
  344. package/dist/components/skeleton/skeleton.vue.d.ts +21 -0
  345. package/dist/components/skeleton/types.d.ts +7 -0
  346. package/dist/components/slider/context.d.ts +8 -0
  347. package/dist/components/slider/context.js +1 -0
  348. package/dist/components/slider/index.d.ts +7 -0
  349. package/dist/components/slider/index.js +1 -0
  350. package/dist/components/slider/shared.js +1 -0
  351. package/dist/components/slider/slider-range.js +1 -0
  352. package/dist/components/slider/slider-range.vue.d.ts +21 -0
  353. package/dist/components/slider/slider-root.js +1 -0
  354. package/dist/components/slider/slider-root.vue.d.ts +41 -0
  355. package/dist/components/slider/slider-thumb.js +1 -0
  356. package/dist/components/slider/slider-thumb.vue.d.ts +21 -0
  357. package/dist/components/slider/slider-track.js +1 -0
  358. package/dist/components/{toast/toast-action.vue.d.ts → slider/slider-track.vue.d.ts} +3 -3
  359. package/dist/components/slider/types.d.ts +69 -0
  360. package/dist/components/splitter/context.d.ts +8 -0
  361. package/dist/components/splitter/context.js +1 -0
  362. package/dist/components/splitter/index.d.ts +6 -0
  363. package/dist/components/splitter/index.js +1 -0
  364. package/dist/components/splitter/shared.js +1 -0
  365. package/dist/components/splitter/splitter-group.js +1 -0
  366. package/dist/components/splitter/splitter-group.vue.d.ts +32 -0
  367. package/dist/components/splitter/splitter-panel.js +1 -0
  368. package/dist/components/splitter/splitter-panel.vue.d.ts +51 -0
  369. package/dist/components/splitter/splitter-resize-handle.js +1 -0
  370. package/dist/components/splitter/splitter-resize-handle.vue.d.ts +30 -0
  371. package/dist/components/splitter/types.d.ts +127 -0
  372. package/dist/components/stepper/context.d.ts +8 -0
  373. package/dist/components/stepper/context.js +1 -0
  374. package/dist/components/stepper/index.d.ts +10 -0
  375. package/dist/components/stepper/index.js +1 -0
  376. package/dist/components/stepper/stepper-description.js +1 -0
  377. package/dist/components/stepper/stepper-description.vue.d.ts +21 -0
  378. package/dist/components/stepper/stepper-indicator.js +1 -0
  379. package/dist/components/stepper/stepper-indicator.vue.d.ts +23 -0
  380. package/dist/components/stepper/stepper-item.js +1 -0
  381. package/dist/components/stepper/stepper-item.vue.d.ts +25 -0
  382. package/dist/components/stepper/stepper-root.js +1 -0
  383. package/dist/components/stepper/stepper-root.vue.d.ts +56 -0
  384. package/dist/components/stepper/stepper-separator.js +1 -0
  385. package/dist/components/stepper/stepper-separator.vue.d.ts +20 -0
  386. package/dist/components/stepper/stepper-title.js +1 -0
  387. package/dist/components/stepper/stepper-title.vue.d.ts +21 -0
  388. package/dist/components/stepper/stepper-trigger.js +1 -0
  389. package/dist/components/stepper/stepper-trigger.vue.d.ts +21 -0
  390. package/dist/components/stepper/types.d.ts +55 -0
  391. package/dist/components/table/context.js +1 -1
  392. package/dist/components/table/hooks.js +1 -0
  393. package/dist/components/table/index.d.ts +10 -8
  394. package/dist/components/table/index.js +1 -1
  395. package/dist/components/table/shared.d.ts +39 -0
  396. package/dist/components/table/shared.js +1 -0
  397. package/dist/components/table/table-compact-cell.js +1 -0
  398. package/dist/components/table/table-compact-head.js +1 -0
  399. package/dist/components/table/table-compact-row.js +1 -0
  400. package/dist/components/table/table-compact.js +1 -0
  401. package/dist/components/table/table-compact.vue.d.ts +25 -0
  402. package/dist/components/table/table-content.js +1 -1
  403. package/dist/components/table/table-root.js +1 -1
  404. package/dist/components/table/table-virtual-spacer-row.js +1 -0
  405. package/dist/components/table/types.d.ts +315 -5
  406. package/dist/components/tabs/tabs-root.vue.d.ts +1 -1
  407. package/dist/components/tags-input/context.d.ts +8 -0
  408. package/dist/components/tags-input/context.js +1 -0
  409. package/dist/components/tags-input/index.d.ts +9 -0
  410. package/dist/components/tags-input/index.js +1 -0
  411. package/dist/components/tags-input/tags-input-clear.js +1 -0
  412. package/dist/components/tags-input/tags-input-clear.vue.d.ts +21 -0
  413. package/dist/components/tags-input/tags-input-input.js +1 -0
  414. package/dist/components/tags-input/tags-input-input.vue.d.ts +21 -0
  415. package/dist/components/tags-input/tags-input-item-delete.js +1 -0
  416. package/dist/components/tags-input/tags-input-item-delete.vue.d.ts +21 -0
  417. package/dist/components/tags-input/tags-input-item-text.js +1 -0
  418. package/dist/components/tags-input/tags-input-item-text.vue.d.ts +21 -0
  419. package/dist/components/tags-input/tags-input-item.js +1 -0
  420. package/dist/components/tags-input/tags-input-item.vue.d.ts +21 -0
  421. package/dist/components/tags-input/tags-input-root.js +1 -0
  422. package/dist/components/tags-input/tags-input-root.vue.d.ts +28 -0
  423. package/dist/components/tags-input/types.d.ts +63 -0
  424. package/dist/components/toast/context.d.ts +3 -4
  425. package/dist/components/toast/context.js +1 -1
  426. package/dist/components/toast/hooks.js +1 -0
  427. package/dist/components/toast/index.d.ts +5 -12
  428. package/dist/components/toast/index.js +1 -1
  429. package/dist/components/toast/shared.js +1 -1
  430. package/dist/components/toast/state.d.ts +27 -0
  431. package/dist/components/toast/state.js +1 -0
  432. package/dist/components/toast/toast-render.js +1 -0
  433. package/dist/components/toast/toast.js +1 -0
  434. package/dist/components/toast/toaster.js +1 -0
  435. package/dist/components/toast/toaster.vue.d.ts +26 -0
  436. package/dist/components/toast/types.d.ts +98 -80
  437. package/dist/components/toggle/index.d.ts +3 -0
  438. package/dist/components/toggle/index.js +1 -0
  439. package/dist/components/toggle/toggle.js +1 -0
  440. package/dist/components/toggle/toggle.vue.d.ts +33 -0
  441. package/dist/components/toggle/types.d.ts +27 -0
  442. package/dist/components/toggle-group/context.d.ts +8 -0
  443. package/dist/components/toggle-group/context.js +1 -0
  444. package/dist/components/toggle-group/index.d.ts +5 -0
  445. package/dist/components/toggle-group/index.js +1 -0
  446. package/dist/components/toggle-group/toggle-group-item.js +1 -0
  447. package/dist/components/toggle-group/toggle-group-item.vue.d.ts +25 -0
  448. package/dist/components/toggle-group/toggle-group-root.js +1 -0
  449. package/dist/components/toggle-group/toggle-group-root.vue.d.ts +26 -0
  450. package/dist/components/toggle-group/types.d.ts +30 -0
  451. package/dist/components/toolbar/context.d.ts +8 -0
  452. package/dist/components/toolbar/context.js +1 -0
  453. package/dist/components/toolbar/index.d.ts +9 -0
  454. package/dist/components/toolbar/index.js +1 -0
  455. package/dist/components/toolbar/toolbar-button.js +1 -0
  456. package/dist/components/toolbar/toolbar-button.vue.d.ts +22 -0
  457. package/dist/components/toolbar/toolbar-link.js +1 -0
  458. package/dist/components/toolbar/toolbar-link.vue.d.ts +21 -0
  459. package/dist/components/toolbar/toolbar-root.js +1 -0
  460. package/dist/components/toolbar/toolbar-root.vue.d.ts +21 -0
  461. package/dist/components/toolbar/toolbar-separator.js +1 -0
  462. package/dist/components/toolbar/toolbar-separator.vue.d.ts +18 -0
  463. package/dist/components/toolbar/toolbar-toggle-group.js +1 -0
  464. package/dist/components/toolbar/toolbar-toggle-group.vue.d.ts +24 -0
  465. package/dist/components/toolbar/toolbar-toggle-item.js +1 -0
  466. package/dist/components/toolbar/toolbar-toggle-item.vue.d.ts +22 -0
  467. package/dist/components/toolbar/types.d.ts +36 -0
  468. package/dist/components/tooltip/tooltip-popup.js +1 -1
  469. package/dist/components/tree-menu/context.js +1 -1
  470. package/dist/components/tree-menu/tree-menu-collapsible.js +1 -1
  471. package/dist/components/tree-menu/tree-menu-root.vue.d.ts +1 -1
  472. package/dist/components/tree-menu/types.d.ts +1 -1
  473. package/dist/components/visually-hidden/visually-hidden-input-bubble.js +1 -1
  474. package/dist/components/visually-hidden/visually-hidden-input.vue.d.ts +1 -1
  475. package/dist/components/visually-hidden/visually-hidden.vue.d.ts +1 -1
  476. package/dist/composables/use-dismissable-layer.js +1 -1
  477. package/dist/composables/use-focus-scope.js +1 -1
  478. package/dist/constants/components.d.ts +25 -0
  479. package/dist/constants/components.js +1 -1
  480. package/dist/index.d.ts +399 -235
  481. package/dist/index.js +1 -1
  482. package/dist/namespaced/index.d.ts +732 -460
  483. package/dist/namespaced/index.js +1 -1
  484. package/dist/node_modules/.pnpm/@soybeanjs_utils@0.1.0/node_modules/@soybeanjs/utils/dist/index.js +1 -0
  485. package/dist/shared/color.d.ts +42 -0
  486. package/dist/shared/color.js +1 -0
  487. package/dist/shared/index.d.ts +3 -2
  488. package/dist/shared/index.js +1 -1
  489. package/dist/shared/vue.d.ts +4 -2
  490. package/dist/shared/vue.js +1 -1
  491. package/dist/types/common.d.ts +2 -1
  492. package/dist/types/event.d.ts +1 -10
  493. package/dist/types/index.d.ts +2 -2
  494. package/package.json +11 -9
  495. package/dist/components/toast/toast-action.js +0 -1
  496. package/dist/components/toast/toast-announce.js +0 -1
  497. package/dist/components/toast/toast-close.js +0 -1
  498. package/dist/components/toast/toast-description.js +0 -1
  499. package/dist/components/toast/toast-focus-proxy.js +0 -1
  500. package/dist/components/toast/toast-provider.js +0 -1
  501. package/dist/components/toast/toast-provider.vue.d.ts +0 -24
  502. package/dist/components/toast/toast-root.js +0 -1
  503. package/dist/components/toast/toast-root.vue.d.ts +0 -46
  504. package/dist/components/toast/toast-title.js +0 -1
  505. package/dist/components/toast/toast-viewport.js +0 -1
@@ -0,0 +1 @@
1
+ import{useOmitProps as e}from"../../composables/use-props.js";import"../../composables/index.js";import t from"../icon/icon-render.js";import n from"../separator/separator-root.js";import{useMenuUi as r}from"./context.js";import i from"./menu-group-label.js";import a from"./menu-item-indicator.js";import o from"./menu-checkbox-item.js";import s from"./menu-checkbox-group.js";import c from"../kbd/kbd.js";import{useCommonSlotNames as l}from"./hooks.js";import u from"./menu-item-slot-compact.js";import{Fragment as d,createBlock as f,createCommentVNode as p,createElementBlock as m,createSlots as h,createVNode as g,defineComponent as _,mergeProps as v,openBlock as y,renderList as b,renderSlot as x,unref as S,useSlots as C,withCtx as w}from"vue";const T=_({name:`MenuCheckboxOptionsCompact`,__name:`menu-checkbox-options-compact`,props:{items:{},groupLabelProps:{},checkboxItemProps:{},indicatorProps:{},shortcutProps:{},separatorProps:{},modelValue:{},defaultValue:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{}},emits:[`update:modelValue`,`select`],setup(_,{emit:T}){let E=_,D=T,O=C(),k=e(E,[`items`,`groupLabelProps`,`checkboxItemProps`,`indicatorProps`,`shortcutProps`,`separatorProps`]),A=l(O),j=r();return(e,r)=>(y(),f(s,v(S(k),{"onUpdate:modelValue":r[0]||(r[0]=e=>D(`update:modelValue`,e))}),{default:w(()=>[(y(!0),m(d,null,b(_.items,r=>(y(),m(d,{key:r.value},[r.isGroupLabel?(y(),f(i,v({key:0,ref_for:!0},_.groupLabelProps),{default:w(()=>[g(u,{icon:r.icon,label:r.label},{default:w(()=>[(y(!0),m(d,null,b(S(A),t=>x(e.$slots,t,v({ref_for:!0},r))),256))]),_:2},1032,[`icon`,`label`])]),_:2},1040)):(y(),f(o,v({key:1,ref_for:!0},_.checkboxItemProps,{value:r.value,disabled:r.disabled,"text-value":r.textValue,onSelect:e=>D(`select`,r,e)}),{default:w(()=>[g(u,{icon:r.icon,label:r.label},h({indicator:w(()=>[g(a,v({ref_for:!0},_.indicatorProps),{default:w(()=>[x(e.$slots,`item-indicator-icon`,v({ref_for:!0},r),()=>[g(t,{icon:`lucide:check`})])]),_:2},1040)]),default:w(()=>[(y(!0),m(d,null,b(S(A),t=>x(e.$slots,t,v({ref_for:!0},r))),256))]),_:2},[r.shortcut?{name:`shortcut`,fn:w(()=>[g(c,v({ref_for:!0},_.shortcutProps,{value:r.shortcut,class:S(j).shortcut}),null,16,[`value`,`class`])]),key:`0`}:void 0]),1032,[`icon`,`label`])]),_:2},1040,[`value`,`disabled`,`text-value`,`onSelect`])),r.separator?(y(),f(n,v({key:2,ref_for:!0},_.separatorProps),null,16)):p(`v-if`,!0)],64))),128))]),_:3},16))}});export{T as default};
@@ -0,0 +1,23 @@
1
+ import { DefinedValue } from "../../types/common.js";
2
+ import { MenuCheckboxOptionData, MenuCheckboxOptionsCompactProps, MenuCheckboxOptionsCompactSlots } from "./types.js";
3
+ import * as _$vue from "vue";
4
+
5
+ //#region src/components/menu/menu-checkbox-options-compact.vue.d.ts
6
+ declare const __VLS_export: <T extends DefinedValue = DefinedValue>(__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<{
7
+ props: _$vue.PublicProps & __VLS_PrettifyLocal<MenuCheckboxOptionsCompactProps<T> & {
8
+ onSelect?: ((item: MenuCheckboxOptionData<T>, event: Event) => any) | undefined;
9
+ "onUpdate:modelValue"?: ((value: T[]) => any) | undefined;
10
+ }> & (typeof globalThis extends {
11
+ __VLS_PROPS_FALLBACK: infer P;
12
+ } ? P : {});
13
+ expose: (exposed: {}) => void;
14
+ attrs: any;
15
+ slots: MenuCheckboxOptionsCompactSlots<T>;
16
+ emit: ((evt: "select", item: MenuCheckboxOptionData<T>, event: Event) => void) & ((evt: "update:modelValue", value: T[]) => void);
17
+ }>) => _$vue.VNode & {
18
+ __ctx?: Awaited<typeof __VLS_setup>;
19
+ };
20
+ declare const _default: typeof __VLS_export;
21
+ type __VLS_PrettifyLocal<T> = (T extends any ? { [K in keyof T]: T[K] } : { [K in keyof T as K]: T[K] }) & {};
22
+ //#endregion
23
+ export { _default };
@@ -1 +1 @@
1
- import{COLLECTION_ITEM_ATTRIBUTE as e}from"../../constants/attr.js";import{useArrowNavigation as t}from"../../composables/use-arrow-navigation.js";import{getActiveElement as n}from"../../shared/dom.js";import{tryFocusFirst as ee}from"../../shared/focus.js";import{isMouseEvent as r}from"../../shared/event.js";import"../../shared/index.js";import{useBodyScrollLock as i}from"../../composables/use-body-scroll-lock.js";import{useDismissableLayer as a}from"../../composables/use-dismissable-layer.js";import{useForwardElement as o}from"../../composables/use-forward-element.js";import{useFocusGuards as s}from"../../composables/use-focus-guards.js";import{useFocusScope as c}from"../../composables/use-focus-scope.js";import{useHideOthers as l}from"../../composables/use-hide-others.js";import{useOmitProps as te}from"../../composables/use-props.js";import{useTypeahead as ne}from"../../composables/use-typeahead.js";import"../../composables/index.js";import u from"../roving-focus/roving-focus-group.js";import"../roving-focus/index.js";import{popperCssVars as d}from"../popper/shared.js";import re from"../popper/popper-positioner.js";import ie from"../popper/popper-popup.js";import"../popper/index.js";import{provideMenuContentContext as f,useMenuContext as p,useMenuRootContext as m,useMenuUi as h}from"./context.js";import{FIRST_LAST_KEYS as g,LAST_KEYS as _,MENU_POPUP_DATA_ATTRIBUTE as v,menuCssVars as y,subMenuCssVars as b}from"./shared.js";import{computed as x,createBlock as ae,createVNode as S,defineComponent as C,isRef as w,mergeProps as T,onWatcherCleanup as E,openBlock as D,renderSlot as O,unref as k,useTemplateRef as A,watchEffect as j,withCtx as M}from"vue";const N=C({name:`MenuContentImpl`,__name:`menu-content-impl`,props:{popupProps:{},placement:{},side:{},sideOffset:{},sideFlip:{type:Boolean},align:{},alignOffset:{},alignFlip:{type:Boolean},avoidCollisions:{type:Boolean},collisionBoundary:{},collisionPadding:{},arrowPadding:{},hideShiftedArrow:{type:Boolean},sticky:{},hideWhenDetached:{type:Boolean},positionStrategy:{},updatePositionStrategy:{},disableUpdateOnLayoutShift:{type:Boolean},prioritizePosition:{type:Boolean},reference:{},trapFocus:{type:Boolean},disableOutsidePointerEvents:{type:Boolean},loop:{type:Boolean}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`,`entryFocus`],setup(C,{emit:N}){let P=C,F=N,{modal:I,dir:L,isUsingKeyboard:R}=m(`MenuContentImpl`),{isRoot:z,dataState:B,popupId:V,triggerId:H,dataPopupAttr:oe,initPopupId:U,onOpenChange:W,onPopupElementChange:G}=p(`MenuContentImpl`),[K,q]=o(),[J,se]=o(e=>{G(e)}),{currentItemId:Y,searchRef:ce,pointerSide:le}=f({popupElement:J}),X=h(),Z=x(()=>z?X.value?.positioner:X.value?.subPositioner),ue=x(()=>z?X.value?.popup:X.value?.subPopup),{handleTypeaheadSearch:de}=ne(),Q=A(`rovingFocusGroupRef`),{pointerEvents:fe}=a(J,{disableOutsidePointerEvents:()=>P.disableOutsidePointerEvents,onEscapeKeyDown:e=>{F(`escapeKeyDown`,e)},onPointerDownOutside:e=>{F(`pointerDownOutside`,e)},onFocusOutside:e=>{F(`focusOutside`,e)},onInteractOutside:e=>{F(`interactOutside`,e)},onDismiss:()=>{z&&W(!1)}}),{onKeydown:pe}=c(K,{trapped:()=>P.trapFocus,onOpenAutoFocus:e=>{F(`openAutoFocus`,e),!e.defaultPrevented&&(e.preventDefault(),J.value?.focus({preventScroll:!0}))},onCloseAutoFocus:e=>{F(`closeAutoFocus`,e)}}),me=te(P,[`disableOutsidePointerEvents`,`trapFocus`,`loop`,`popupProps`]),he=x(()=>({...P.popupProps,[oe]:``})),ge=x(()=>{let e=z?y:b;return{[e.popupTransformOrigin]:`var(${d.transformOrigin})`,[e.popupAvailableWidth]:`var(${d.availableWidth})`,[e.popupAvailableHeight]:`var(${d.availableHeight})`,[e.triggerWidth]:`var(${d.anchorWidth})`,[e.triggerHeight]:`var(${d.anchorHeight})`,pointerEvents:fe.value}}),_e=e=>{F(`entryFocus`,e),R.value||e.preventDefault()},ve=r=>{if(pe(r),r.defaultPrevented)return;let i=r.target.closest(`[${v}]`)===r.currentTarget,a=r.ctrlKey||r.altKey||r.metaKey,o=r.key.length===1,s=t(r,n(),J.value,{loop:P.loop,arrowKeyOptions:`vertical`,dir:L.value,focus:!0,attributeName:`[${e}]:not([data-disabled])`});if(s){s.focus();return}if(r.code===`Space`)return;let c=Q.value?.getItems()??[];if(i&&(r.key===`Tab`&&r.preventDefault(),!a&&o&&de(r.key,c)),r.target!==J.value||!g.includes(r.key))return;r.preventDefault();let l=c.map(e=>e.element);_.includes(r.key)&&l.reverse(),ee(l)};function ye(e){if(!e)return;let{currentTarget:t,target:n}=e;t?.contains(n)||(ce.value=``)}let $=0;function be(e){if(!r(e))return;let t=e.target,n=$!==e.clientX;(e?.currentTarget)?.contains(t)&&n&&(le.value=e.clientX>$?`right`:`left`,$=e.clientX)}return U(),s(),l(K,()=>I.value&&z),j(()=>{P.disableOutsidePointerEvents&&E(i())}),(e,t)=>(D(),ae(k(u),{ref_key:`rovingFocusGroupRef`,ref:Q,"current-tab-stop-id":k(Y),"onUpdate:currentTabStopId":t[0]||(t[0]=e=>w(Y)?Y.value=e:null),"as-child":``,orientation:`vertical`,dir:k(L),loop:C.loop,onEntryFocus:_e},{default:M(()=>[S(k(re),T(k(me),{ref:k(q),class:Z.value,onKeydown:ve,onBlur:ye,onPointermove:be}),{default:M(()=>[S(k(ie),T(he.value,{id:k(V),ref:k(se),class:ue.value,"aria-labelledby":k(H),"aria-orientation":`vertical`,"data-dismissable-layer":``,"data-state":k(B),dir:k(L),role:`menu`,tabindex:`-1`,style:ge.value}),{default:M(()=>[O(e.$slots,`default`)]),_:3},16,[`id`,`class`,`aria-labelledby`,`data-state`,`dir`,`style`])]),_:3},16,[`class`])]),_:3},8,[`current-tab-stop-id`,`dir`,`loop`]))}});export{N as default};
1
+ import{COLLECTION_ITEM_ATTRIBUTE as e}from"../../constants/attr.js";import{useArrowNavigation as t}from"../../composables/use-arrow-navigation.js";import{getActiveElement as n}from"../../shared/dom.js";import{tryFocusFirst as r}from"../../shared/focus.js";import{isMouseEvent as i}from"../../shared/event.js";import"../../shared/index.js";import{useBodyScrollLock as a}from"../../composables/use-body-scroll-lock.js";import{useDismissableLayer as o}from"../../composables/use-dismissable-layer.js";import{useForwardElement as s}from"../../composables/use-forward-element.js";import{useFocusGuards as c}from"../../composables/use-focus-guards.js";import{useFocusScope as l}from"../../composables/use-focus-scope.js";import{useHideOthers as u}from"../../composables/use-hide-others.js";import{useOmitProps as ee}from"../../composables/use-props.js";import{useTypeahead as te}from"../../composables/use-typeahead.js";import"../../composables/index.js";import{popperCssVars as d}from"../popper/shared.js";import ne from"../popper/popper-positioner.js";import re from"../popper/popper-popup.js";import"../popper/index.js";import f from"../roving-focus/roving-focus-group.js";import"../roving-focus/index.js";import{provideMenuContentContext as p,useMenuContext as m,useMenuRootContext as h,useMenuUi as g}from"./context.js";import{FIRST_LAST_KEYS as _,LAST_KEYS as v,MENU_POPUP_DATA_ATTRIBUTE as y,menuCssVars as b,subMenuCssVars as ie}from"./shared.js";import{computed as x,createBlock as ae,createVNode as S,defineComponent as C,isRef as w,mergeProps as T,onWatcherCleanup as E,openBlock as D,renderSlot as O,unref as k,useTemplateRef as A,watchEffect as j,withCtx as M}from"vue";const N=C({name:`MenuContentImpl`,__name:`menu-content-impl`,props:{popupProps:{},placement:{},side:{},sideOffset:{},sideFlip:{type:Boolean},align:{},alignOffset:{},alignFlip:{type:Boolean},avoidCollisions:{type:Boolean},collisionBoundary:{},collisionPadding:{},arrowPadding:{},hideShiftedArrow:{type:Boolean},sticky:{},hideWhenDetached:{type:Boolean},positionStrategy:{},updatePositionStrategy:{},disableUpdateOnLayoutShift:{type:Boolean},prioritizePosition:{type:Boolean},reference:{},trapFocus:{type:Boolean},disableOutsidePointerEvents:{type:Boolean},loop:{type:Boolean}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`,`entryFocus`],setup(C,{emit:N}){let P=C,F=N,{modal:I,dir:L,isUsingKeyboard:R}=h(`MenuContentImpl`),{isRoot:z,dataState:B,popupId:V,triggerId:oe,dataPopupAttr:H,initPopupId:U,onOpenChange:W,onPopupElementChange:G}=m(`MenuContentImpl`),[K,q]=s(),[J,se]=s(e=>{G(e)}),{currentItemId:Y,searchRef:ce,pointerSide:le}=p({popupElement:J}),X=g(),Z=x(()=>z?X.value?.positioner:X.value?.subPositioner),ue=x(()=>z?X.value?.popup:X.value?.subPopup),{handleTypeaheadSearch:de}=te(),Q=A(`rovingFocusGroupRef`),{pointerEvents:fe}=o(J,{disableOutsidePointerEvents:()=>P.disableOutsidePointerEvents,onEscapeKeyDown:e=>{F(`escapeKeyDown`,e)},onPointerDownOutside:e=>{F(`pointerDownOutside`,e)},onFocusOutside:e=>{F(`focusOutside`,e)},onInteractOutside:e=>{F(`interactOutside`,e)},onDismiss:()=>{z&&W(!1)}}),{onKeydown:pe}=l(J,{trapped:()=>P.trapFocus,onOpenAutoFocus:e=>{F(`openAutoFocus`,e),!e.defaultPrevented&&(e.preventDefault(),J.value?.focus({preventScroll:!0}))},onCloseAutoFocus:e=>{F(`closeAutoFocus`,e)}}),me=ee(P,[`disableOutsidePointerEvents`,`trapFocus`,`loop`,`popupProps`]),he=x(()=>({...P.popupProps,[H]:``})),ge=x(()=>{let e=z?b:ie;return{[e.popupTransformOrigin]:`var(${d.transformOrigin})`,[e.popupAvailableWidth]:`var(${d.availableWidth})`,[e.popupAvailableHeight]:`var(${d.availableHeight})`,[e.triggerWidth]:`var(${d.anchorWidth})`,[e.triggerHeight]:`var(${d.anchorHeight})`,pointerEvents:fe.value}}),_e=e=>{F(`entryFocus`,e),R.value||e.preventDefault()},ve=i=>{if(pe(i),i.defaultPrevented)return;let a=i.target.closest(`[${y}]`)===i.currentTarget,o=i.ctrlKey||i.altKey||i.metaKey,s=i.key.length===1,c=t(i,n(),J.value,{loop:P.loop,arrowKeyOptions:`vertical`,dir:L.value,focus:!0,attributeName:`[${e}]:not([data-disabled])`});if(c){c.focus();return}if(i.code===`Space`)return;let l=Q.value?.getItems()??[];if(a&&(i.key===`Tab`&&i.preventDefault(),!o&&s&&de(i.key,l)),i.target!==J.value||!_.includes(i.key))return;i.preventDefault();let u=l.map(e=>e.element);v.includes(i.key)&&u.reverse(),r(u)};function ye(e){if(!e)return;let{currentTarget:t,target:n}=e;t?.contains(n)||(ce.value=``)}let $=0;function be(e){if(!i(e))return;let t=e.target,n=$!==e.clientX;(e?.currentTarget)?.contains(t)&&n&&(le.value=e.clientX>$?`right`:`left`,$=e.clientX)}return U(),c(),u(K,()=>I.value&&z),j(()=>{P.disableOutsidePointerEvents&&E(a())}),(e,t)=>(D(),ae(k(ne),T(k(me),{ref:k(q),class:Z.value}),{default:M(()=>[S(k(f),{ref_key:`rovingFocusGroupRef`,ref:Q,"current-tab-stop-id":k(Y),"onUpdate:currentTabStopId":t[0]||(t[0]=e=>w(Y)?Y.value=e:null),"as-child":``,orientation:`vertical`,dir:k(L),loop:C.loop,onEntryFocus:_e},{default:M(()=>[S(k(re),T(he.value,{id:k(V),ref:k(se),class:ue.value,"aria-labelledby":k(oe),"aria-orientation":`vertical`,"data-dismissable-layer":``,"data-state":k(B),dir:k(L),role:`menu`,tabindex:`-1`,style:ge.value,onKeydown:ve,onBlur:ye,onPointermove:be}),{default:M(()=>[O(e.$slots,`default`)]),_:3},16,[`id`,`class`,`aria-labelledby`,`data-state`,`dir`,`style`])]),_:3},8,[`current-tab-stop-id`,`dir`,`loop`])]),_:3},16,[`class`]))}});export{N as default};
@@ -9,20 +9,20 @@ type __VLS_Slots = {} & {
9
9
  };
10
10
  declare const __VLS_base: _$vue.DefineComponent<MenuContentProps, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {
11
11
  escapeKeyDown: (event: KeyboardEvent) => any;
12
- entryFocus: (event: Event) => any;
13
- closeAutoFocus: (event: Event) => any;
14
12
  pointerDownOutside: (event: PointerDownOutsideEvent) => any;
15
13
  focusOutside: (event: FocusOutsideEvent) => any;
16
14
  interactOutside: (event: PointerDownOutsideEvent | FocusOutsideEvent) => any;
15
+ entryFocus: (event: Event) => any;
17
16
  openAutoFocus: (event: Event) => any;
17
+ closeAutoFocus: (event: Event) => any;
18
18
  }, string, _$vue.PublicProps, Readonly<MenuContentProps> & Readonly<{
19
19
  onEscapeKeyDown?: ((event: KeyboardEvent) => any) | undefined;
20
- onEntryFocus?: ((event: Event) => any) | undefined;
21
- onCloseAutoFocus?: ((event: Event) => any) | undefined;
22
20
  onPointerDownOutside?: ((event: PointerDownOutsideEvent) => any) | undefined;
23
21
  onFocusOutside?: ((event: FocusOutsideEvent) => any) | undefined;
24
22
  onInteractOutside?: ((event: PointerDownOutsideEvent | FocusOutsideEvent) => any) | undefined;
23
+ onEntryFocus?: ((event: Event) => any) | undefined;
25
24
  onOpenAutoFocus?: ((event: Event) => any) | undefined;
25
+ onCloseAutoFocus?: ((event: Event) => any) | undefined;
26
26
  }>, {}, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
27
27
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
28
28
  declare const _default: typeof __VLS_export;
@@ -0,0 +1 @@
1
+ import e from"../icon/icon-render.js";import{useMenuUi as t}from"./context.js";import{Fragment as n,createBlock as r,createCommentVNode as i,createElementBlock as a,createElementVNode as o,defineComponent as s,normalizeClass as c,openBlock as l,renderSlot as u,toDisplayString as d,unref as f}from"vue";const p=s({name:`MenuItemSlotCompact`,__name:`menu-item-slot-compact`,props:{icon:{},label:{}},setup(s){let p=t();return(t,m)=>(l(),a(n,null,[u(t.$slots,`indicator`),u(t.$slots,`item`,{},()=>[u(t.$slots,`item-leading`,{},()=>[s.icon?(l(),r(e,{key:0,icon:s.icon,class:c(f(p).itemIcon)},null,8,[`icon`,`class`])):i(`v-if`,!0)]),o(`span`,null,d(s.label),1),u(t.$slots,`link-icon`),u(t.$slots,`item-trailing`),u(t.$slots,`trigger-icon`),u(t.$slots,`shortcut`)])],64))}});export{p as default};
@@ -0,0 +1 @@
1
+ import{useForwardListeners as e}from"../../composables/use-forward-listeners.js";import{useOmitProps as t}from"../../composables/use-props.js";import"../../composables/index.js";import n from"../icon/icon-render.js";import r from"../portal/portal.js";import i from"../separator/separator-root.js";import a from"../link/link.js";import{useMenuOptionsCompactContext as o,useMenuUi as s}from"./context.js";import c from"./menu-group.js";import l from"./menu-group-label.js";import u from"./menu-item.js";import d from"./menu-sub.js";import f from"./menu-sub-trigger.js";import p from"./menu-sub-content.js";import{e as m}from"../../node_modules/.pnpm/@soybeanjs_utils@0.1.0/node_modules/@soybeanjs/utils/dist/index.js";import h from"../kbd/kbd.js";import{useCommonSlotNames as g}from"./hooks.js";import _ from"./menu-item-slot-compact.js";import{Fragment as v,computed as y,createBlock as b,createCommentVNode as x,createElementBlock as S,createSlots as C,createVNode as w,defineComponent as T,guardReactiveProps as E,mergeProps as D,normalizeClass as O,normalizeProps as k,openBlock as A,renderList as j,renderSlot as M,resolveComponent as N,toHandlers as P,unref as F,useSlots as I,withCtx as L}from"vue";const R=T({name:`MenuOptionCompact`,inheritAttrs:!1,__name:`menu-option-compact`,props:{item:{},itemProps:{},linkProps:{},groupProps:{},groupLabelProps:{},subProps:{},subTriggerProps:{},portalProps:{},subContentProps:{},separatorProps:{},shortcutProps:{}},emits:[`update:open`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`,`entryFocus`,`select`],setup(T,{emit:R}){let z=T,B=R,V=e(B),H=I(),U=t(z,[`item`]),W=y(()=>m(H)),G=g(H),K=s(),{activeValue:q,activePaths:J}=o(`MenuOptionCompact`),Y=y(()=>q.value===z.item.value),X=y(()=>J.value.includes(z.item.value));return(e,t)=>{let o=N(`MenuOptionCompact`,!0);return A(),S(v,null,[T.item.isGroupLabel?(A(),b(l,k(D({key:0},T.groupLabelProps)),{default:L(()=>[w(_,{icon:T.item.icon,label:T.item.label},{default:L(()=>[(A(!0),S(v,null,j(F(G),t=>M(e.$slots,t,{item:T.item})),256))]),_:3},8,[`icon`,`label`])]),_:3},16)):T.item.to||T.item.href?(A(),b(u,D({key:1},T.itemProps,{"as-child":``,disabled:T.item.disabled,"text-value":T.item.textValue,"data-active":Y.value,onSelect:t[0]||(t[0]=e=>B(`select`,T.item,e))}),{default:L(()=>[w(a,D(T.linkProps,{disabled:T.item.disabled,to:T.item.to,href:T.item.href,target:T.item.target,external:T.item.external}),{default:L(({isHref:t})=>[w(_,{icon:T.item.icon,label:T.item.label},C({default:L(()=>[(A(!0),S(v,null,j(F(G),t=>M(e.$slots,t,{item:T.item})),256))]),_:2},[t?{name:`link-icon`,fn:L(()=>[M(e.$slots,`item-link-icon`,{item:T.item},()=>[w(n,{icon:`lucide:arrow-up-right`,class:O(F(K).itemLinkIcon)},null,8,[`class`])])]),key:`0`}:void 0]),1032,[`icon`,`label`])]),_:3},16,[`disabled`,`to`,`href`,`target`,`external`])]),_:3},16,[`disabled`,`text-value`,`data-active`])):T.item.children?.length?(A(),b(d,D({key:3},T.subProps,{"onUpdate:open":t[2]||(t[2]=e=>B(`update:open`,e))}),{default:L(()=>[w(f,D(T.subTriggerProps,{disabled:T.item.disabled,"text-value":T.item.textValue,"data-child-active":X.value?``:void 0}),{default:L(()=>[w(_,{icon:T.item.icon,label:T.item.label},{"trigger-icon":L(()=>[M(e.$slots,`item-trigger-icon`,{item:T.item},()=>[w(n,{icon:`lucide:chevron-right`,class:O(F(K).subTriggerIcon)},null,8,[`class`])])]),default:L(()=>[(A(!0),S(v,null,j(F(G),t=>M(e.$slots,t,{item:T.item})),256))]),_:3},8,[`icon`,`label`])]),_:3},16,[`disabled`,`text-value`,`data-child-active`]),T.item.separator?(A(),b(i,k(D({key:0},T.separatorProps)),null,16)):x(`v-if`,!0),w(r,k(E(T.portalProps)),{default:L(()=>[w(p,D(T.subContentProps,P(F(V))),{default:L(()=>[w(c,k(E(T.groupProps)),{default:L(()=>[(A(!0),S(v,null,j(T.item.children,t=>(A(),b(o,D({key:t.value},{ref_for:!0},F(U),{item:t},P(F(V))),C({_:2},[j(W.value,t=>({name:t,fn:L(n=>[M(e.$slots,t,D({ref_for:!0},n))])}))]),1040,[`item`]))),128))]),_:3},16)]),_:3},16)]),_:3},16)]),_:3},16)):(A(),b(u,D({key:2},T.itemProps,{disabled:T.item.disabled,"text-value":T.item.textValue,"data-active":Y.value,onSelect:t[1]||(t[1]=e=>B(`select`,T.item,e))}),{default:L(()=>[w(_,{icon:T.item.icon,label:T.item.label},{shortcut:L(()=>[T.item.shortcut?(A(),b(h,D({key:0},T.shortcutProps,{value:T.item.shortcut,class:F(K).shortcut}),null,16,[`value`,`class`])):x(`v-if`,!0)]),default:L(()=>[(A(!0),S(v,null,j(F(G),t=>M(e.$slots,t,{item:T.item})),256))]),_:3},8,[`icon`,`label`])]),_:3},16,[`disabled`,`text-value`,`data-active`])),T.item.separator&&!T.item.children?.length?(A(),b(i,k(D({key:4},T.separatorProps)),null,16)):x(`v-if`,!0)],64)}}});export{R as default};
@@ -0,0 +1,31 @@
1
+ import { DefinedValue } from "../../types/common.js";
2
+ import { FocusOutsideEvent, PointerDownOutsideEvent } from "../../types/event.js";
3
+ import { MenuOptionCompactProps, MenuOptionCompactSlots, MenuOptionData } from "./types.js";
4
+ import * as _$vue from "vue";
5
+
6
+ //#region src/components/menu/menu-option-compact.vue.d.ts
7
+ declare const __VLS_export: <T extends DefinedValue = DefinedValue>(__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<{
8
+ props: _$vue.PublicProps & __VLS_PrettifyLocal<MenuOptionCompactProps<T> & {
9
+ onSelect?: ((item: MenuOptionData<T>, event: Event) => any) | undefined;
10
+ onEscapeKeyDown?: ((event: KeyboardEvent) => any) | undefined;
11
+ onPointerDownOutside?: ((event: PointerDownOutsideEvent) => any) | undefined;
12
+ onFocusOutside?: ((event: FocusOutsideEvent) => any) | undefined;
13
+ onInteractOutside?: ((event: PointerDownOutsideEvent | FocusOutsideEvent) => any) | undefined;
14
+ "onUpdate:open"?: ((value: boolean) => any) | undefined;
15
+ onEntryFocus?: ((event: Event) => any) | undefined;
16
+ onOpenAutoFocus?: ((event: Event) => any) | undefined;
17
+ onCloseAutoFocus?: ((event: Event) => any) | undefined;
18
+ }> & (typeof globalThis extends {
19
+ __VLS_PROPS_FALLBACK: infer P;
20
+ } ? P : {});
21
+ expose: (exposed: {}) => void;
22
+ attrs: any;
23
+ slots: MenuOptionCompactSlots<T>;
24
+ emit: ((evt: "select", item: MenuOptionData<T>, event: Event) => void) & ((evt: "escapeKeyDown", event: KeyboardEvent) => void) & ((evt: "pointerDownOutside", event: PointerDownOutsideEvent) => void) & ((evt: "focusOutside", event: FocusOutsideEvent) => void) & ((evt: "interactOutside", event: PointerDownOutsideEvent | FocusOutsideEvent) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "entryFocus", event: Event) => void) & ((evt: "openAutoFocus", event: Event) => void) & ((evt: "closeAutoFocus", event: Event) => void);
25
+ }>) => _$vue.VNode & {
26
+ __ctx?: Awaited<typeof __VLS_setup>;
27
+ };
28
+ declare const _default: typeof __VLS_export;
29
+ type __VLS_PrettifyLocal<T> = (T extends any ? { [K in keyof T]: T[K] } : { [K in keyof T as K]: T[K] }) & {};
30
+ //#endregion
31
+ export { _default };
@@ -0,0 +1 @@
1
+ import{transformPropsToContext as e}from"../../shared/vue.js";import{getTreePaths as t}from"../../shared/tree.js";import"../../shared/index.js";import{useForwardListeners as n}from"../../composables/use-forward-listeners.js";import{useOmitProps as r}from"../../composables/use-props.js";import"../../composables/index.js";import{provideMenuOptionsCompactContext as i}from"./context.js";import a from"./menu-group.js";import{e as o}from"../../node_modules/.pnpm/@soybeanjs_utils@0.1.0/node_modules/@soybeanjs/utils/dist/index.js";import s from"./menu-option-compact.js";import{Fragment as c,computed as l,createBlock as u,createElementBlock as d,createSlots as f,defineComponent as p,guardReactiveProps as m,mergeProps as h,normalizeProps as g,openBlock as _,renderList as v,renderSlot as y,toHandlers as b,unref as x,useSlots as S,withCtx as C}from"vue";const w=p({name:`MenuOptionsCompact`,inheritAttrs:!1,__name:`menu-options-compact`,props:{items:{},activeValue:{},itemProps:{},linkProps:{},groupProps:{},groupLabelProps:{},subProps:{},subTriggerProps:{},portalProps:{},subContentProps:{},separatorProps:{},shortcutProps:{}},emits:[`update:open`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`,`entryFocus`,`select`],setup(p,{emit:w}){let T=p,E=w,D=S(),O=r(T,[`items`]),k=n(E),A=l(()=>o(D)),j=l(()=>T.activeValue===void 0?[]:t(T.activeValue,T.items));return i({...e(T,[`activeValue`]),activePaths:j}),(e,t)=>(_(),u(a,g(m(p.groupProps)),{default:C(()=>[(_(!0),d(c,null,v(p.items,t=>(_(),u(s,h({key:t.value},{ref_for:!0},x(O),{item:t},b(x(k))),f({_:2},[v(A.value,t=>({name:t,fn:C(n=>[y(e.$slots,t,h({ref_for:!0},n))])}))]),1040,[`item`]))),128))]),_:3},16))}});export{w as default};
@@ -0,0 +1,31 @@
1
+ import { DefinedValue } from "../../types/common.js";
2
+ import { FocusOutsideEvent, PointerDownOutsideEvent } from "../../types/event.js";
3
+ import { MenuOptionData, MenuOptionsCompactProps, MenuOptionsCompactSlots } from "./types.js";
4
+ import * as _$vue from "vue";
5
+
6
+ //#region src/components/menu/menu-options-compact.vue.d.ts
7
+ declare const __VLS_export: <T extends DefinedValue = DefinedValue>(__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<{
8
+ props: _$vue.PublicProps & __VLS_PrettifyLocal<MenuOptionsCompactProps<T> & {
9
+ onSelect?: ((item: MenuOptionData<T>, event: Event) => any) | undefined;
10
+ onEscapeKeyDown?: ((event: KeyboardEvent) => any) | undefined;
11
+ onPointerDownOutside?: ((event: PointerDownOutsideEvent) => any) | undefined;
12
+ onFocusOutside?: ((event: FocusOutsideEvent) => any) | undefined;
13
+ onInteractOutside?: ((event: PointerDownOutsideEvent | FocusOutsideEvent) => any) | undefined;
14
+ "onUpdate:open"?: ((value: boolean) => any) | undefined;
15
+ onEntryFocus?: ((event: Event) => any) | undefined;
16
+ onOpenAutoFocus?: ((event: Event) => any) | undefined;
17
+ onCloseAutoFocus?: ((event: Event) => any) | undefined;
18
+ }> & (typeof globalThis extends {
19
+ __VLS_PROPS_FALLBACK: infer P;
20
+ } ? P : {});
21
+ expose: (exposed: {}) => void;
22
+ attrs: any;
23
+ slots: MenuOptionsCompactSlots<T>;
24
+ emit: ((evt: "select", item: MenuOptionData<T>, event: Event) => void) & ((evt: "escapeKeyDown", event: KeyboardEvent) => void) & ((evt: "pointerDownOutside", event: PointerDownOutsideEvent) => void) & ((evt: "focusOutside", event: FocusOutsideEvent) => void) & ((evt: "interactOutside", event: PointerDownOutsideEvent | FocusOutsideEvent) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "entryFocus", event: Event) => void) & ((evt: "openAutoFocus", event: Event) => void) & ((evt: "closeAutoFocus", event: Event) => void);
25
+ }>) => _$vue.VNode & {
26
+ __ctx?: Awaited<typeof __VLS_setup>;
27
+ };
28
+ declare const _default: typeof __VLS_export;
29
+ type __VLS_PrettifyLocal<T> = (T extends any ? { [K in keyof T]: T[K] } : { [K in keyof T as K]: T[K] }) & {};
30
+ //#endregion
31
+ export { _default };
@@ -0,0 +1 @@
1
+ import{useOmitProps as e}from"../../composables/use-props.js";import"../../composables/index.js";import t from"../icon/icon-render.js";import n from"../separator/separator-root.js";import{useMenuUi as r}from"./context.js";import i from"./menu-group-label.js";import a from"./menu-item-indicator.js";import o from"./menu-radio-item.js";import s from"./menu-radio-group.js";import c from"../kbd/kbd.js";import{useCommonSlotNames as l}from"./hooks.js";import u from"./menu-item-slot-compact.js";import{Fragment as d,createBlock as f,createCommentVNode as p,createElementBlock as m,createSlots as h,createVNode as g,defineComponent as _,mergeProps as v,openBlock as y,renderList as b,renderSlot as x,unref as S,useSlots as C,withCtx as w}from"vue";const T=_({name:`MenuRadioOptionsCompact`,__name:`menu-radio-options-compact`,props:{items:{},groupLabelProps:{},radioItemProps:{},indicatorProps:{},shortcutProps:{},separatorProps:{},modelValue:{},defaultValue:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{}},emits:[`update:modelValue`,`select`],setup(_,{emit:T}){let E=_,D=T,O=C(),k=e(E,[`items`,`groupLabelProps`,`radioItemProps`,`indicatorProps`,`shortcutProps`,`separatorProps`]),A=l(O),j=r();return(e,r)=>(y(),f(s,v(S(k),{"onUpdate:modelValue":r[0]||(r[0]=e=>D(`update:modelValue`,e))}),{default:w(()=>[(y(!0),m(d,null,b(_.items,r=>(y(),m(d,{key:r.value},[r.isGroupLabel?(y(),f(i,v({key:0,ref_for:!0},_.groupLabelProps),{default:w(()=>[g(u,{icon:r.icon,label:r.label},{default:w(()=>[(y(!0),m(d,null,b(S(A),t=>x(e.$slots,t,v({ref_for:!0},r))),256))]),_:2},1032,[`icon`,`label`])]),_:2},1040)):(y(),f(o,v({key:1,ref_for:!0},_.radioItemProps,{value:r.value,disabled:r.disabled,"text-value":r.textValue,onSelect:e=>D(`select`,r,e)}),{default:w(()=>[g(u,{icon:r.icon,label:r.label},h({indicator:w(()=>[g(a,v({ref_for:!0},_.indicatorProps),{default:w(()=>[x(e.$slots,`item-indicator-icon`,v({ref_for:!0},r),()=>[g(t,{icon:`icon-park-outline:dot`})])]),_:2},1040)]),default:w(()=>[(y(!0),m(d,null,b(S(A),t=>x(e.$slots,t,v({ref_for:!0},r))),256))]),_:2},[r.shortcut?{name:`shortcut`,fn:w(()=>[g(c,v({ref_for:!0},_.shortcutProps,{value:r.shortcut,class:S(j).shortcut}),null,16,[`value`,`class`])]),key:`0`}:void 0]),1032,[`icon`,`label`])]),_:2},1040,[`value`,`disabled`,`text-value`,`onSelect`])),r.separator?(y(),f(n,v({key:2,ref_for:!0},_.separatorProps),null,16)):p(`v-if`,!0)],64))),128))]),_:3},16))}});export{T as default};
@@ -0,0 +1,23 @@
1
+ import { AcceptableBooleanValue } from "../../types/common.js";
2
+ import { MenuRadioOptionData, MenuRadioOptionsCompactProps, MenuRadioOptionsCompactSlots } from "./types.js";
3
+ import * as _$vue from "vue";
4
+
5
+ //#region src/components/menu/menu-radio-options-compact.vue.d.ts
6
+ declare const __VLS_export: <T extends AcceptableBooleanValue = AcceptableBooleanValue>(__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<{
7
+ props: _$vue.PublicProps & __VLS_PrettifyLocal<MenuRadioOptionsCompactProps<T> & {
8
+ onSelect?: ((item: MenuRadioOptionData<T>, event: Event) => any) | undefined;
9
+ "onUpdate:modelValue"?: ((payload: NonNullable<T>) => any) | undefined;
10
+ }> & (typeof globalThis extends {
11
+ __VLS_PROPS_FALLBACK: infer P;
12
+ } ? P : {});
13
+ expose: (exposed: {}) => void;
14
+ attrs: any;
15
+ slots: MenuRadioOptionsCompactSlots<T>;
16
+ emit: ((evt: "select", item: MenuRadioOptionData<T>, event: Event) => void) & ((evt: "update:modelValue", payload: NonNullable<T>) => void);
17
+ }>) => _$vue.VNode & {
18
+ __ctx?: Awaited<typeof __VLS_setup>;
19
+ };
20
+ declare const _default: typeof __VLS_export;
21
+ type __VLS_PrettifyLocal<T> = (T extends any ? { [K in keyof T]: T[K] } : { [K in keyof T as K]: T[K] }) & {};
22
+ //#endregion
23
+ export { _default };
@@ -1 +1 @@
1
- import{transformPropsToContext as e}from"../../shared/vue.js";import"../../shared/index.js";import{useControllableState as t}from"../../composables/use-controllable-state.js";import{useIsUsingKeyboard as n}from"../../composables/use-is-using-keyboard.js";import"../../composables/index.js";import r from"../popper/popper-root.js";import"../popper/index.js";import{provideMenuContext as i,provideMenuRootContext as a}from"./context.js";import{createBlock as o,defineComponent as s,openBlock as c,renderSlot as l,unref as u,withCtx as d}from"vue";const f=s({name:`MenuRoot`,inheritAttrs:!1,__name:`menu-root`,props:{dir:{},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean},modal:{type:Boolean,default:!0}},emits:[`update:open`],setup(s,{emit:f}){let p=s,m=f,h=t(()=>p.open,e=>{m(`update:open`,e??!1)},p.defaultOpen),g=n(),_=()=>{h.value=!1};return i({open:h,isRoot:!0}),a({...e(p,[`modal`,`dir`]),onClose:_,isUsingKeyboard:g}),(e,t)=>(c(),o(u(r),null,{default:d(()=>[l(e.$slots,`default`,{open:u(h)})]),_:3}))}});export{f as default};
1
+ import{transformPropsToContext as e}from"../../shared/vue.js";import"../../shared/index.js";import{useControllableState as t}from"../../composables/use-controllable-state.js";import{useIsUsingKeyboard as n}from"../../composables/use-is-using-keyboard.js";import"../../composables/index.js";import{useDirection as r}from"../config-provider/context.js";import i from"../popper/popper-root.js";import"../popper/index.js";import{provideMenuContext as a,provideMenuRootContext as o}from"./context.js";import{createBlock as s,defineComponent as c,openBlock as l,renderSlot as u,unref as d,withCtx as f}from"vue";const p=c({name:`MenuRoot`,inheritAttrs:!1,__name:`menu-root`,props:{dir:{},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean},modal:{type:Boolean,default:!0}},emits:[`update:open`],setup(c,{emit:p}){let m=c,h=p,g=t(()=>m.open,e=>{h(`update:open`,e??!1)},m.defaultOpen),_=r(()=>m.dir),v=n(),y=()=>{g.value=!1};return a({open:g,isRoot:!0}),o({...e(m,[`modal`]),dir:_,onClose:y,isUsingKeyboard:v}),(e,t)=>(l(),s(d(i),null,{default:f(()=>[u(e.$slots,`default`,{open:d(g)})]),_:3}))}});export{p as default};
@@ -1 +1 @@
1
- import{useForwardListeners as e}from"../../composables/use-forward-listeners.js";import{usePresence as t}from"../../composables/use-presence.js";import"../../composables/index.js";import{useMenuContext as n,useMenuRootContext as r}from"./context.js";import{SUB_CLOSE_KEYS as i}from"./shared.js";import a from"./menu-content-impl.js";import{computed as o,createBlock as s,createCommentVNode as c,defineComponent as l,mergeProps as u,openBlock as d,renderSlot as f,shallowRef as p,toHandlers as m,unref as h,withCtx as g,withModifiers as _}from"vue";const v=l({name:`MenuSubContent`,__name:`menu-sub-content`,props:{popupProps:{},placement:{},sideOffset:{},sideFlip:{type:Boolean},alignOffset:{},alignFlip:{type:Boolean},avoidCollisions:{type:Boolean},collisionBoundary:{},collisionPadding:{},arrowPadding:{},hideShiftedArrow:{type:Boolean},sticky:{},hideWhenDetached:{type:Boolean},positionStrategy:{},updatePositionStrategy:{},disableUpdateOnLayoutShift:{type:Boolean},prioritizePosition:{type:Boolean,default:!0},reference:{},forceMount:{type:Boolean},loop:{type:Boolean}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`,`entryFocus`],setup(l,{emit:v}){let y=l,b=e(v),{open:x,popupElement:S,triggerId:C,triggerElement:w,onOpenChange:T}=n(`MenuSubContent`),{dir:E,isUsingKeyboard:D,onClose:O}=r(`MenuSubContent`),k=y.forceMount?p(!0):t(S,x),A=o(()=>E.value===`rtl`?`left`:`right`),j=()=>{D.value&&S.value?.focus()},M=e=>{e.defaultPrevented||e.target!==w.value&&T(!1)},N=e=>{O(),e.preventDefault()},P=e=>{let t=e.currentTarget?.contains(e.target),n=i[E.value].includes(e.key);t&&n&&(T(!1),w.value?.focus(),e.preventDefault())};return(e,t)=>h(k)?(d(),s(a,u({key:0},y,{"trap-focus":!1,"disable-outside-pointer-events":!1,"aria-labelledby":h(C),align:`start`,side:A.value},m(h(b)),{onOpenAutoFocus:_(j,[`prevent`]),onCloseAutoFocus:t[0]||(t[0]=_(()=>{},[`prevent`])),onEscapeKeyDown:N,onFocusOutside:M,onKeydown:P}),{default:g(()=>[f(e.$slots,`default`)]),_:3},16,[`aria-labelledby`,`side`])):c(`v-if`,!0)}});export{v as default};
1
+ import{useForwardListeners as e}from"../../composables/use-forward-listeners.js";import{usePresence as t}from"../../composables/use-presence.js";import"../../composables/index.js";import{useMenuContext as n,useMenuRootContext as r,useMenuSubAttributeContext as i}from"./context.js";import{SUB_CLOSE_KEYS as a}from"./shared.js";import o from"./menu-content-impl.js";import{computed as s,createBlock as c,createCommentVNode as l,defineComponent as u,mergeProps as d,openBlock as f,renderSlot as p,shallowRef as m,toHandlers as h,unref as g,withCtx as _,withModifiers as v}from"vue";const y=u({name:`MenuSubContent`,__name:`menu-sub-content`,props:{popupProps:{},placement:{},sideOffset:{},sideFlip:{type:Boolean},alignOffset:{},alignFlip:{type:Boolean},avoidCollisions:{type:Boolean},collisionBoundary:{},collisionPadding:{},arrowPadding:{},hideShiftedArrow:{type:Boolean},sticky:{},hideWhenDetached:{type:Boolean},positionStrategy:{},updatePositionStrategy:{},disableUpdateOnLayoutShift:{type:Boolean},prioritizePosition:{type:Boolean,default:!0},reference:{},forceMount:{type:Boolean},loop:{type:Boolean}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`,`entryFocus`],setup(u,{emit:y}){let b=u,x=e(y),{open:S,popupElement:C,triggerId:w,triggerElement:T,onOpenChange:E}=n(`MenuSubContent`),{dir:D,isUsingKeyboard:O,onClose:k}=r(`MenuSubContent`),A=i(),j=s(()=>d(b,{...A?.subContent?.value})),M=b.forceMount?m(!0):t(C,S),N=s(()=>D.value===`rtl`?`left`:`right`),P=()=>{O.value&&C.value?.focus()},F=e=>{e.defaultPrevented||e.target!==T.value&&E(!1)},I=e=>{k(),e.preventDefault()},L=e=>{let t=e.currentTarget?.contains(e.target),n=a[D.value].includes(e.key);t&&n&&(E(!1),T.value?.focus(),e.preventDefault())};return(e,t)=>g(M)?(f(),c(o,d({key:0},j.value,{"trap-focus":!1,"disable-outside-pointer-events":!1,"aria-labelledby":g(w),align:`start`,side:N.value},h(g(x)),{onOpenAutoFocus:v(P,[`prevent`]),onCloseAutoFocus:t[0]||(t[0]=v(()=>{},[`prevent`])),onEscapeKeyDown:I,onFocusOutside:F,onKeydown:L}),{default:_(()=>[p(e.$slots,`default`)]),_:3},16,[`aria-labelledby`,`side`])):l(`v-if`,!0)}});export{y as default};
@@ -9,20 +9,20 @@ type __VLS_Slots = {} & {
9
9
  };
10
10
  declare const __VLS_base: _$vue.DefineComponent<MenuSubContentProps, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {
11
11
  escapeKeyDown: (event: KeyboardEvent) => any;
12
- entryFocus: (event: Event) => any;
13
- closeAutoFocus: (event: Event) => any;
14
12
  pointerDownOutside: (event: PointerDownOutsideEvent) => any;
15
13
  focusOutside: (event: FocusOutsideEvent) => any;
16
14
  interactOutside: (event: PointerDownOutsideEvent | FocusOutsideEvent) => any;
15
+ entryFocus: (event: Event) => any;
17
16
  openAutoFocus: (event: Event) => any;
17
+ closeAutoFocus: (event: Event) => any;
18
18
  }, string, _$vue.PublicProps, Readonly<MenuSubContentProps> & Readonly<{
19
19
  onEscapeKeyDown?: ((event: KeyboardEvent) => any) | undefined;
20
- onEntryFocus?: ((event: Event) => any) | undefined;
21
- onCloseAutoFocus?: ((event: Event) => any) | undefined;
22
20
  onPointerDownOutside?: ((event: PointerDownOutsideEvent) => any) | undefined;
23
21
  onFocusOutside?: ((event: FocusOutsideEvent) => any) | undefined;
24
22
  onInteractOutside?: ((event: PointerDownOutsideEvent | FocusOutsideEvent) => any) | undefined;
23
+ onEntryFocus?: ((event: Event) => any) | undefined;
25
24
  onOpenAutoFocus?: ((event: Event) => any) | undefined;
25
+ onCloseAutoFocus?: ((event: Event) => any) | undefined;
26
26
  }>, {
27
27
  prioritizePosition: boolean;
28
28
  }, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
@@ -1 +1 @@
1
- import{isMouseEvent as e}from"../../shared/event.js";import"../../shared/index.js";import{useForwardElement as t}from"../../composables/use-forward-element.js";import"../../composables/index.js";import n from"../popper/popper-anchor.js";import"../popper/index.js";import{useMenuContentContext as r,useMenuContext as i,useMenuRootContext as a,useMenuUi as o}from"./context.js";import{SUB_OPEN_KEYS as s}from"./shared.js";import c from"./menu-item-impl.js";import{createBlock as l,createVNode as u,defineComponent as d,mergeProps as f,nextTick as p,openBlock as m,renderSlot as h,unref as g,withCtx as _}from"vue";const v=d({__name:`menu-sub-trigger`,props:{disabled:{type:Boolean},textValue:{},asChild:{type:Boolean},as:{}},setup(d){let v=d,{open:y,dataState:b,popupElement:x,popupId:S,triggerId:C,onTriggerElementChange:w,initTriggerId:T,onOpenChange:E}=i(`MenuSubTrigger`),{dir:D}=a(`MenuSubTrigger`),{pointerGraceTimer:O,searchRef:k,onPointerGraceIntentChange:A,resetPointerGraceIntent:j,onItemEnter:M,onTriggerLeave:N}=r(`MenuSubTrigger`),[P,F]=t(w),I=o(`subTrigger`),L=null,R=()=>{L&&window.clearTimeout(L),L=null},z=e=>{v.disabled||e.defaultPrevented||(e.currentTarget.focus(),y.value||E(!0))},B=t=>{e(t)&&(M(t)||v.disabled||y.value||L||(j(),L=window.setTimeout(()=>{E(!0),R()},100)))},V=t=>{if(!e(t))return;R();let n=x.value?.getBoundingClientRect();if(n?.width){let e=x.value?.dataset.side,r=e===`right`,i=r?-5:5,a=n[r?`left`:`right`],o=n[r?`right`:`left`];A({area:[{x:t.clientX+i,y:t.clientY},{x:a,y:n.top},{x:o,y:n.top},{x:o,y:n.bottom},{x:a,y:n.bottom}],side:e}),window.clearTimeout(O.value),O.value=window.setTimeout(()=>A(null),300)}else{if(N(t))return;j()}},H=async e=>{v.disabled||k.value!==``&&e.key===` `||s[D.value].includes(e.key)&&(E(!0),await p(),x.value?.focus(),e.preventDefault())};return T(),(e,t)=>(m(),l(g(n),{"as-child":``},{default:_(()=>[u(c,f(v,{id:g(C),ref:g(F),class:g(I),"aria-haspopup":`menu`,"aria-expanded":g(y),"aria-controls":g(S),"data-state":g(b),onClick:z,onPointermove:B,onPointerleave:V,onKeydown:H}),{default:_(()=>[h(e.$slots,`default`)]),_:3},16,[`id`,`class`,`aria-expanded`,`aria-controls`,`data-state`])]),_:3}))}});export{v as default};
1
+ import{isMouseEvent as e}from"../../shared/event.js";import"../../shared/index.js";import{useForwardElement as t}from"../../composables/use-forward-element.js";import"../../composables/index.js";import n from"../popper/popper-anchor.js";import"../popper/index.js";import{useMenuContentContext as r,useMenuContext as i,useMenuRootContext as a,useMenuSubAttributeContext as o,useMenuUi as s}from"./context.js";import{SUB_OPEN_KEYS as c}from"./shared.js";import l from"./menu-item-impl.js";import{computed as u,createBlock as d,createVNode as f,defineComponent as p,mergeProps as m,nextTick as h,openBlock as g,renderSlot as _,unref as v,withCtx as y}from"vue";const b=p({__name:`menu-sub-trigger`,props:{disabled:{type:Boolean},textValue:{},asChild:{type:Boolean},as:{}},setup(p){let b=p,{open:x,dataState:S,popupElement:C,popupId:w,triggerId:T,onTriggerElementChange:E,initTriggerId:D,onOpenChange:O}=i(`MenuSubTrigger`),{dir:k}=a(`MenuSubTrigger`),A=o(),{pointerGraceTimer:j,searchRef:M,onPointerGraceIntentChange:N,resetPointerGraceIntent:P,onItemEnter:F,onTriggerLeave:I}=r(`MenuSubTrigger`),[L,R]=t(E),z=u(()=>m(b,{...A?.subTrigger?.value})),B=s(`subTrigger`),V=null,H=()=>{V&&window.clearTimeout(V),V=null},U=e=>{b.disabled||e.defaultPrevented||(e.currentTarget.focus(),x.value||O(!0))},W=t=>{e(t)&&(F(t)||b.disabled||x.value||V||(P(),V=window.setTimeout(()=>{O(!0),H()},100)))},G=t=>{if(!e(t))return;H();let n=C.value?.getBoundingClientRect();if(n?.width){let e=C.value?.dataset.side,r=e===`right`,i=r?-5:5,a=n[r?`left`:`right`],o=n[r?`right`:`left`];N({area:[{x:t.clientX+i,y:t.clientY},{x:a,y:n.top},{x:o,y:n.top},{x:o,y:n.bottom},{x:a,y:n.bottom}],side:e}),window.clearTimeout(j.value),j.value=window.setTimeout(()=>N(null),300)}else{if(I(t))return;P()}},K=async e=>{b.disabled||M.value!==``&&e.key===` `||c[k.value].includes(e.key)&&(O(!0),await h(),C.value?.focus(),e.preventDefault())};return D(),(e,t)=>(g(),d(v(n),{"as-child":``},{default:y(()=>[f(l,m(z.value,{id:v(T),ref:v(R),class:v(B),"aria-haspopup":`menu`,"aria-expanded":v(x),"aria-controls":v(w),"data-state":v(S),onClick:U,onPointermove:W,onPointerleave:G,onKeydown:K}),{default:y(()=>[_(e.$slots,`default`)]),_:3},16,[`id`,`class`,`aria-expanded`,`aria-controls`,`data-state`])]),_:3}))}});export{b as default};
@@ -1 +1 @@
1
- import{SELECTION_KEYS as e}from"../../constants/common.js";const t={popupTransformOrigin:`--soybean-menu-popup-transform-origin`,popupAvailableWidth:`--soybean-menu-popup-available-width`,popupAvailableHeight:`--soybean-menu-popup-available-height`,triggerWidth:`--soybean-menu-trigger-width`,triggerHeight:`--soybean-menu-trigger-height`},n={popupTransformOrigin:`--soybean-sub-menu-popup-transform-origin`,popupAvailableWidth:`--soybean-sub-menu-popup-available-width`,popupAvailableHeight:`--soybean-sub-menu-popup-available-height`,triggerWidth:`--soybean-sub-menu-trigger-width`,triggerHeight:`--soybean-sub-menu-trigger-height`},r=`data-soybean-menu-popup`,i=`menu.itemSelect`,a=[`ArrowDown`,`PageUp`,`Home`],o=[`ArrowUp`,`PageDown`,`End`],s=[...a,...o],c={ltr:[...e,`ArrowRight`],rtl:[...e,`ArrowLeft`]},l={ltr:[`ArrowLeft`],rtl:[`ArrowRight`]};export{s as FIRST_LAST_KEYS,i as ITEM_SELECT,o as LAST_KEYS,r as MENU_POPUP_DATA_ATTRIBUTE,l as SUB_CLOSE_KEYS,c as SUB_OPEN_KEYS,t as menuCssVars,n as subMenuCssVars};
1
+ import{SELECTION_KEYS as e}from"../../constants/common.js";const t={popupTransformOrigin:`--soybean-menu-popup-transform-origin`,popupAvailableWidth:`--soybean-menu-popup-available-width`,popupAvailableHeight:`--soybean-menu-popup-available-height`,triggerWidth:`--soybean-menu-trigger-width`,triggerHeight:`--soybean-menu-trigger-height`},n={popupTransformOrigin:`--soybean-sub-menu-popup-transform-origin`,popupAvailableWidth:`--soybean-sub-menu-popup-available-width`,popupAvailableHeight:`--soybean-sub-menu-popup-available-height`,triggerWidth:`--soybean-sub-menu-trigger-width`,triggerHeight:`--soybean-sub-menu-trigger-height`},r=`data-soybean-menu-popup`,i=`menu.itemSelect`,a=[`ArrowDown`,`PageUp`,`Home`],o=[`ArrowUp`,`PageDown`,`End`],s=[...a,...o],c={ltr:[...e,`ArrowRight`],rtl:[...e,`ArrowLeft`]},l={ltr:[`ArrowLeft`],rtl:[`ArrowRight`]},u=[`item`,`item-leading`,`item-trailing`];export{u as COMMON_SLOTS,s as FIRST_LAST_KEYS,i as ITEM_SELECT,o as LAST_KEYS,r as MENU_POPUP_DATA_ATTRIBUTE,l as SUB_CLOSE_KEYS,c as SUB_OPEN_KEYS,t as menuCssVars,n as subMenuCssVars};
@@ -1,9 +1,14 @@
1
1
  import { AcceptableBooleanValue, CheckedState, DefinedValue, Direction, UiClass } from "../../types/common.js";
2
2
  import { DismissableLayerEmits, FocusScopeEmits, ForceMountProps } from "../../types/component.js";
3
3
  import { PrimitiveProps } from "../primitive/types.js";
4
+ import { IconValue } from "../icon/types.js";
4
5
  import { DialogRootEmits, DialogRootProps } from "../dialog/types.js";
5
- import { RovingFocusGroupEmits, RovingFocusGroupProps } from "../roving-focus/types.js";
6
+ import { PortalProps } from "../portal/types.js";
7
+ import { LinkBaseProps, LinkProps } from "../link/types.js";
6
8
  import { PopperPopupProps, PopperPositionerProps } from "../popper/types.js";
9
+ import { SeparatorRootProps } from "../separator/types.js";
10
+ import { RovingFocusGroupEmits, RovingFocusGroupProps } from "../roving-focus/types.js";
11
+ import { KbdProps, KbdValue } from "../kbd/types.js";
7
12
  import { ButtonHTMLAttributes, ComputedRef, HTMLAttributes, ShallowRef } from "vue";
8
13
 
9
14
  //#region src/components/menu/types.d.ts
@@ -30,7 +35,7 @@ interface MenuSubProps extends Pick<MenuRootProps, 'open' | 'defaultOpen'> {}
30
35
  type MenuSubEmits = MenuRootEmits;
31
36
  interface MenuSubContentProps extends Omit<MenuContentProps, 'side' | 'align'> {}
32
37
  type MenuSubContentEmits = MenuContentEmits;
33
- interface MenuGroupProps extends PrimitiveProps, /** @vue-ignore */HTMLAttributes {}
38
+ interface MenuGroupProps extends PrimitiveProps, /** @vue-ignore */Omit<HTMLAttributes, 'dir' | 'onSelect'> {}
34
39
  interface MenuGroupLabelProps extends /** @vue-ignore */HTMLAttributes {}
35
40
  interface MenuItemImplProps extends PrimitiveProps, /** @vue-ignore */HTMLAttributes {
36
41
  /** When `true`, prevents the user from interacting with the item. */
@@ -98,7 +103,117 @@ type MenuRadioGroupEmits<T = AcceptableBooleanValue> = {
98
103
  };
99
104
  interface MenuSubTriggerProps extends MenuItemImplProps {}
100
105
  interface MenuItemIndicatorProps extends PrimitiveProps, ForceMountProps, /** @vue-ignore */HTMLAttributes {}
101
- type MenuUiSlot = 'positioner' | 'popup' | 'arrow' | 'subPositioner' | 'subPopup' | 'subTrigger' | 'group' | 'groupLabel' | 'item' | 'checkboxGroup' | 'checkboxItem' | 'radioGroup' | 'radioItem' | 'itemIndicator' | 'separator';
106
+ interface MenuOptionData<T extends DefinedValue = DefinedValue> extends Pick<MenuItemProps, 'disabled' | 'textValue'>, LinkBaseProps {
107
+ /** The label to display in the menu. */
108
+ label: string;
109
+ /** The value of the option. */
110
+ value: T;
111
+ /** Whether the option should render as a group label. */
112
+ isGroupLabel?: boolean;
113
+ /** The icon rendered before the label. */
114
+ icon?: IconValue;
115
+ /** Whether to show a separator after this option. */
116
+ separator?: boolean;
117
+ /** The shortcut rendered at the end of the option. */
118
+ shortcut?: KbdValue | KbdValue[];
119
+ /** The children of the option. */
120
+ children?: MenuOptionData<T>[];
121
+ }
122
+ interface MenuShortcutProps extends Omit<KbdProps, 'value'> {}
123
+ interface MenuOptionCompactProps<T extends DefinedValue = DefinedValue> {
124
+ item: MenuOptionData<T>;
125
+ itemProps?: MenuItemProps;
126
+ linkProps?: LinkProps;
127
+ groupProps?: MenuGroupProps;
128
+ groupLabelProps?: MenuGroupLabelProps;
129
+ subProps?: MenuSubProps;
130
+ subTriggerProps?: MenuSubTriggerProps;
131
+ portalProps?: PortalProps;
132
+ subContentProps?: MenuSubContentProps;
133
+ separatorProps?: SeparatorRootProps;
134
+ shortcutProps?: MenuShortcutProps;
135
+ }
136
+ type MenuOptionCompactSelectEmits<T extends DefinedValue = DefinedValue> = {
137
+ select: [item: MenuOptionData<T>, event: Event];
138
+ };
139
+ type MenuOptionCompactEmits<T extends DefinedValue = DefinedValue> = MenuSubEmits & MenuSubContentEmits & MenuOptionCompactSelectEmits<T>;
140
+ type MenuOptionCompactSlots<T extends DefinedValue = DefinedValue> = {
141
+ item?: (props: {
142
+ item: MenuOptionData<T>;
143
+ isTrigger?: boolean;
144
+ }) => any;
145
+ 'item-leading'?: (props: {
146
+ item: MenuOptionData<T>;
147
+ }) => any;
148
+ 'item-trailing'?: (props: {
149
+ item: MenuOptionData<T>;
150
+ }) => any;
151
+ 'item-trigger-icon'?: (props: {
152
+ item: MenuOptionData<T>;
153
+ }) => any;
154
+ 'item-link-icon'?: (props: {
155
+ item: MenuOptionData<T>;
156
+ }) => any;
157
+ };
158
+ interface MenuOptionsCompactProps<T extends DefinedValue = DefinedValue> extends Omit<MenuOptionCompactProps<T>, 'item'> {
159
+ items: MenuOptionData<T>[];
160
+ /** The active value of the menu. */
161
+ activeValue?: T;
162
+ }
163
+ type MenuOptionsCompactEmits<T extends DefinedValue = DefinedValue> = MenuOptionCompactEmits<T>;
164
+ type MenuOptionsCompactSlots<T extends DefinedValue = DefinedValue> = MenuOptionCompactSlots<T>;
165
+ interface MenuCheckboxOptionData<T extends DefinedValue = DefinedValue> extends Omit<MenuOptionData<T>, 'children'> {}
166
+ interface MenuCheckboxOptionsCompactProps<T extends DefinedValue = DefinedValue> extends MenuCheckboxGroupProps<T> {
167
+ items: MenuCheckboxOptionData<T>[];
168
+ groupLabelProps?: MenuGroupLabelProps;
169
+ checkboxItemProps?: MenuCheckboxItemProps;
170
+ indicatorProps?: MenuItemIndicatorProps;
171
+ shortcutProps?: MenuShortcutProps;
172
+ separatorProps?: SeparatorRootProps;
173
+ }
174
+ type MenuCheckboxOptionsCompactSelectEmits<T extends DefinedValue = DefinedValue> = {
175
+ select: [item: MenuCheckboxOptionData<T>, event: Event];
176
+ };
177
+ type MenuCheckboxOptionsCompactEmits<T extends DefinedValue = DefinedValue> = MenuCheckboxGroupEmits<T> & MenuCheckboxOptionsCompactSelectEmits<T>;
178
+ type MenuCheckboxOptionsCompactSlots<T extends DefinedValue = DefinedValue> = {
179
+ item?: (props: MenuCheckboxOptionData<T>) => any;
180
+ 'item-leading'?: (props: MenuCheckboxOptionData<T>) => any;
181
+ 'item-trailing'?: (props: MenuCheckboxOptionData<T>) => any;
182
+ 'item-indicator-icon'?: (props: MenuCheckboxOptionData<T>) => any;
183
+ };
184
+ interface MenuRadioOptionData<T extends AcceptableBooleanValue = AcceptableBooleanValue> extends Pick<MenuItemProps, 'disabled' | 'textValue'>, LinkBaseProps {
185
+ /** The label to display in the menu. */
186
+ label: string;
187
+ /** The value of the option. */
188
+ value: NonNullable<T>;
189
+ /** Whether the option should render as a group label. */
190
+ isGroupLabel?: boolean;
191
+ /** The icon rendered before the label. */
192
+ icon?: IconValue;
193
+ /** Whether to show a separator after this option. */
194
+ separator?: boolean;
195
+ /** The shortcut rendered at the end of the option. */
196
+ shortcut?: KbdValue | KbdValue[];
197
+ }
198
+ interface MenuRadioOptionsCompactProps<T extends AcceptableBooleanValue = AcceptableBooleanValue> extends MenuRadioGroupProps<T> {
199
+ items: MenuRadioOptionData<T>[];
200
+ groupLabelProps?: MenuGroupLabelProps;
201
+ radioItemProps?: MenuRadioItemProps;
202
+ indicatorProps?: MenuItemIndicatorProps;
203
+ shortcutProps?: MenuShortcutProps;
204
+ separatorProps?: SeparatorRootProps;
205
+ }
206
+ type MenuRadioOptionsCompactSelectEmits<T extends AcceptableBooleanValue = AcceptableBooleanValue> = {
207
+ select: [item: MenuRadioOptionData<T>, event: Event];
208
+ };
209
+ type MenuRadioOptionsCompactEmits<T extends AcceptableBooleanValue = AcceptableBooleanValue> = MenuRadioGroupEmits<T> & MenuRadioOptionsCompactSelectEmits<T>;
210
+ type MenuRadioOptionsCompactSlots<T extends AcceptableBooleanValue = AcceptableBooleanValue> = {
211
+ item?: (props: MenuRadioOptionData<T>) => any;
212
+ 'item-leading'?: (props: MenuRadioOptionData<T>) => any;
213
+ 'item-trailing'?: (props: MenuRadioOptionData<T>) => any;
214
+ 'item-indicator-icon'?: (props: MenuRadioOptionData<T>) => any;
215
+ };
216
+ type MenuUiSlot = 'positioner' | 'popup' | 'arrow' | 'subPositioner' | 'subPopup' | 'subTrigger' | 'group' | 'groupLabel' | 'item' | 'itemIcon' | 'itemLink' | 'itemLinkIcon' | 'checkboxGroup' | 'checkboxItem' | 'radioGroup' | 'radioItem' | 'itemIndicator' | 'subTriggerIcon' | 'shortcut' | 'separator';
102
217
  type MenuUi = UiClass<MenuUiSlot>;
103
218
  //#endregion
104
- export { MenuCheckboxGroupEmits, MenuCheckboxGroupProps, MenuCheckboxItemEmits, MenuCheckboxItemProps, MenuContentEmits, MenuContentProps, MenuGroupLabelProps, MenuGroupProps, MenuItemEmits, MenuItemIndicatorProps, MenuItemProps, MenuPopupProps, MenuRadioGroupEmits, MenuRadioGroupProps, MenuRadioItemEmits, MenuRadioItemProps, MenuRootEmits, MenuRootProps, MenuSubContentEmits, MenuSubContentProps, MenuSubEmits, MenuSubProps, MenuSubTriggerProps, MenuTriggerProps, MenuUi, MenuUiSlot };
219
+ export { MenuCheckboxGroupEmits, MenuCheckboxGroupProps, MenuCheckboxItemEmits, MenuCheckboxItemProps, MenuCheckboxOptionData, MenuCheckboxOptionsCompactEmits, MenuCheckboxOptionsCompactProps, MenuCheckboxOptionsCompactSelectEmits, MenuCheckboxOptionsCompactSlots, MenuContentEmits, MenuContentProps, MenuGroupLabelProps, MenuGroupProps, MenuItemEmits, MenuItemIndicatorProps, MenuItemProps, MenuOptionCompactEmits, MenuOptionCompactProps, MenuOptionCompactSelectEmits, MenuOptionCompactSlots, MenuOptionData, MenuOptionsCompactEmits, MenuOptionsCompactProps, MenuOptionsCompactSlots, MenuPopupProps, MenuRadioGroupEmits, MenuRadioGroupProps, MenuRadioItemEmits, MenuRadioItemProps, MenuRadioOptionData, MenuRadioOptionsCompactEmits, MenuRadioOptionsCompactProps, MenuRadioOptionsCompactSelectEmits, MenuRadioOptionsCompactSlots, MenuRootEmits, MenuRootProps, MenuShortcutProps, MenuSubContentEmits, MenuSubContentProps, MenuSubEmits, MenuSubProps, MenuSubTriggerProps, MenuTriggerProps, MenuUi, MenuUiSlot };
@@ -0,0 +1,8 @@
1
+ import { ClassValue, UiClass } from "../../types/common.js";
2
+ import { MenubarUiSlot } from "./types.js";
3
+ import * as _$vue from "vue";
4
+
5
+ //#region src/components/menubar/context.d.ts
6
+ declare const provideMenubarUi: (ui: _$vue.ComputedRef<Partial<UiClass<MenubarUiSlot>>>) => _$vue.ComputedRef<Partial<UiClass<MenubarUiSlot>>>, useMenubarUi: <S extends MenubarUiSlot | undefined = undefined>(slot?: S | undefined) => S extends MenubarUiSlot ? _$vue.ComputedRef<ClassValue> : _$vue.ComputedRef<Partial<UiClass<MenubarUiSlot>>>;
7
+ //#endregion
8
+ export { provideMenubarUi };
@@ -0,0 +1 @@
1
+ import{useContext as e}from"../../composables/use-context.js";import{useCollection as t}from"../../composables/use-collection.js";import{useUiContext as n}from"../../composables/use-ui-context.js";import"../../composables/index.js";import{useDirection as r}from"../config-provider/context.js";import{provideMenuUi as i}from"../menu/context.js";import{shallowRef as a}from"vue";const{provideCollectionContext:o,useCollectionContext:s,useCollectionItem:c}=t(`Menubar`),[l,u]=e(`MenubarRoot`,e=>{let{modelValue:t,currentTabStopId:n}=e,i=r(e.dir),o=a(!1),s=e=>{o.value=!1,t.value=e,n.value=String(e)},c=()=>{o.value=!1,t.value=``},l=e=>{o.value=!1,t.value=t.value?``:e,n.value=String(e)},u=()=>{o.value=!0,t.value=``};return{...e,dir:i,isLinkTriggerHovered:o,onMenuOpen:s,onMenuClose:c,onMenuToggle:l,setTriggerLink:u}}),[d,f]=e(`MenubarMenu`,e=>e),[p,m]=n(`MenubarUi`,e=>(i(e),e));export{o as provideMenubarCollectionContext,d as provideMenubarMenuContext,l as provideMenubarRootContext,p as provideMenubarUi,s as useMenubarCollectionContext,c as useMenubarCollectionItem,f as useMenubarMenuContext,u as useMenubarRootContext,m as useMenubarUi};
@@ -0,0 +1,22 @@
1
+ import { _default as _default$10 } from "../portal/portal.vue.js";
2
+ import { _default } from "../popper/popper-arrow.vue.js";
3
+ import { _default as _default$5 } from "../menu/menu-group.vue.js";
4
+ import { _default as _default$6 } from "../menu/menu-group-label.vue.js";
5
+ import { _default as _default$7 } from "../menu/menu-item.vue.js";
6
+ import { _default as _default$8 } from "../menu/menu-item-indicator.vue.js";
7
+ import { _default as _default$2 } from "../menu/menu-checkbox-item.vue.js";
8
+ import { _default as _default$12 } from "../menu/menu-radio-item.vue.js";
9
+ import { _default as _default$15 } from "../menu/menu-sub.vue.js";
10
+ import { _default as _default$14 } from "../separator/separator-root.vue.js";
11
+ import { _default as _default$1 } from "../menu/menu-checkbox-group.vue.js";
12
+ import { _default as _default$11 } from "../menu/menu-radio-group.vue.js";
13
+ import { MenubarCompactEmits, MenubarCompactProps, MenubarCompactSlots, MenubarContentEmits, MenubarContentProps, MenubarMenuProps, MenubarRootEmits, MenubarRootProps, MenubarSubContentEmits, MenubarSubContentProps, MenubarSubTriggerProps, MenubarTriggerProps, MenubarUi, MenubarUiSlot } from "./types.js";
14
+ import { _default as _default$13 } from "./menubar-root.vue.js";
15
+ import { _default as _default$9 } from "./menubar-menu.vue.js";
16
+ import { _default as _default$18 } from "./menubar-trigger.vue.js";
17
+ import { _default as _default$4 } from "./menubar-content.vue.js";
18
+ import { _default as _default$17 } from "./menubar-sub-trigger.vue.js";
19
+ import { _default as _default$16 } from "./menubar-sub-content.vue.js";
20
+ import { _default as _default$3 } from "./menubar-compact.vue.js";
21
+ import { provideMenubarUi } from "./context.js";
22
+ export { _default as MenubarArrow, _default$1 as MenubarCheckboxGroup, _default$2 as MenubarCheckboxItem, _default$3 as MenubarCompact, type MenubarCompactEmits, type MenubarCompactProps, type MenubarCompactSlots, _default$4 as MenubarContent, type MenubarContentEmits, type MenubarContentProps, _default$5 as MenubarGroup, _default$6 as MenubarGroupLabel, _default$7 as MenubarItem, _default$8 as MenubarItemIndicator, _default$9 as MenubarMenu, type MenubarMenuProps, _default$10 as MenubarPortal, _default$11 as MenubarRadioGroup, _default$12 as MenubarRadioItem, _default$13 as MenubarRoot, type MenubarRootEmits, type MenubarRootProps, _default$14 as MenubarSeparator, _default$15 as MenubarSub, _default$16 as MenubarSubContent, type MenubarSubContentEmits, type MenubarSubContentProps, _default$17 as MenubarSubTrigger, type MenubarSubTriggerProps, _default$18 as MenubarTrigger, type MenubarTriggerProps, type MenubarUi, type MenubarUiSlot, provideMenubarUi };
@@ -0,0 +1 @@
1
+ import e from"../portal/portal.js";import t from"../popper/popper-arrow.js";import n from"../separator/separator-root.js";import r from"../menu/menu-group.js";import i from"../menu/menu-group-label.js";import a from"../menu/menu-item.js";import o from"../menu/menu-item-indicator.js";import s from"../menu/menu-checkbox-item.js";import c from"../menu/menu-radio-item.js";import l from"../menu/menu-sub.js";import u from"../menu/menu-checkbox-group.js";import d from"../menu/menu-radio-group.js";import"../menu/index.js";import{provideMenubarUi as f}from"./context.js";import p from"./menubar-root.js";import m from"./menubar-menu.js";import h from"./menubar-trigger.js";import g from"./menubar-content.js";import _ from"./menubar-sub-trigger.js";import v from"./menubar-sub-content.js";import y from"./menubar-compact.js";export{t as MenubarArrow,u as MenubarCheckboxGroup,s as MenubarCheckboxItem,y as MenubarCompact,g as MenubarContent,r as MenubarGroup,i as MenubarGroupLabel,a as MenubarItem,o as MenubarItemIndicator,m as MenubarMenu,e as MenubarPortal,d as MenubarRadioGroup,c as MenubarRadioItem,p as MenubarRoot,n as MenubarSeparator,l as MenubarSub,v as MenubarSubContent,_ as MenubarSubTrigger,h as MenubarTrigger,f as provideMenubarUi};
@@ -0,0 +1 @@
1
+ import{useForwardListeners as e}from"../../composables/use-forward-listeners.js";import{usePickProps as t}from"../../composables/use-props.js";import"../../composables/index.js";import n from"../icon/icon-render.js";import r from"../portal/portal.js";import i from"../link/link.js";import{useMenuUi as a}from"../menu/context.js";import{e as o}from"../../node_modules/.pnpm/@soybeanjs_utils@0.1.0/node_modules/@soybeanjs/utils/dist/index.js";import s from"../menu/menu-options-compact.js";import"../menu/index.js";import c from"./menubar-root.js";import l from"./menubar-menu.js";import u from"./menubar-trigger.js";import d from"./menubar-content.js";import{Fragment as f,computed as p,createBlock as m,createCommentVNode as h,createElementBlock as g,createElementVNode as _,createSlots as v,createVNode as y,defineComponent as b,mergeProps as x,normalizeClass as S,openBlock as C,renderList as w,renderSlot as T,toDisplayString as E,toHandlers as D,unref as O,useSlots as k,withCtx as A}from"vue";const j=b({name:`MenubarCompact`,__name:`menubar-compact`,props:{disabled:{type:Boolean},placement:{},showArrow:{type:Boolean},triggerProps:{},portalProps:{},contentProps:{},popupProps:{},arrowProps:{},modelValue:{},defaultValue:{},dir:{},loop:{type:Boolean},asChild:{type:Boolean},as:{},items:{},activeValue:{},itemProps:{},linkProps:{},groupProps:{},groupLabelProps:{},subProps:{},subTriggerProps:{},subContentProps:{},separatorProps:{},shortcutProps:{}},emits:[`update:modelValue`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`,`entryFocus`,`update:open`,`select`],setup(b,{emit:j}){let M=b,N=j,P=k(),F=t(M,[`as`,`modelValue`,`defaultValue`,`dir`,`loop`]),I=t(M,[`items`,`activeValue`,`itemProps`,`linkProps`,`groupProps`,`groupLabelProps`,`portalProps`,`subTriggerProps`,`subContentProps`,`separatorProps`,`shortcutProps`]),L=e(N),R=p(()=>o(P).filter(e=>e!==`trigger`)),z=a(),B=p(()=>({...M.triggerProps,disabled:M.disabled??M.triggerProps?.disabled})),V=p(()=>({...M.contentProps,popupProps:M.popupProps??M.contentProps?.popupProps,placement:M.placement??M.contentProps?.placement,sideOffset:M.contentProps?.sideOffset??(M.showArrow?0:8)}));return(e,t)=>(C(),m(c,x(O(F),D(O(L))),{default:A(()=>[(C(!0),g(f,null,w(b.items,t=>(C(),m(l,{key:t.value,value:t.value},{default:A(()=>[t.to||t.href?(C(),m(u,x({key:0,ref_for:!0},B.value,{"as-child":``}),{default:A(()=>[y(i,x({ref_for:!0},b.linkProps,{disabled:t.disabled,to:t.to,href:t.href,target:t.target,external:t.external}),{default:A(({isHref:r})=>[T(e.$slots,`trigger`,{item:t},()=>[T(e.$slots,`item-leading`,{item:t},()=>[t.icon?(C(),m(n,{key:0,icon:t.icon,class:S(O(z).itemIcon)},null,8,[`icon`,`class`])):h(`v-if`,!0)]),_(`span`,null,E(t.label),1),r?T(e.$slots,`item-link-icon`,{key:0,item:t},()=>[y(n,{icon:`lucide:arrow-up-right`,class:S(O(z).itemLinkIcon)},null,8,[`class`])]):h(`v-if`,!0),T(e.$slots,`item-trailing`,{item:t})])]),_:2},1040,[`disabled`,`to`,`href`,`target`,`external`])]),_:2},1040)):(C(),g(f,{key:1},[y(u,x({ref_for:!0},B.value),{default:A(()=>[T(e.$slots,`trigger`,{item:t},()=>[T(e.$slots,`item-leading`,{item:t},()=>[t.icon?(C(),m(n,{key:0,icon:t.icon,class:S(O(z).itemIcon)},null,8,[`icon`,`class`])):h(`v-if`,!0)]),_(`span`,null,E(t.label),1),T(e.$slots,`item-trailing`,{item:t})])]),_:2},1040),y(O(r),x({ref_for:!0},b.portalProps),{default:A(()=>[y(d,x({ref_for:!0},V.value),{default:A(()=>[y(O(s),x({ref_for:!0},O(I),{items:t.children??[]}),v({_:2},[w(R.value,t=>({name:t,fn:A(n=>[T(e.$slots,t,x({ref_for:!0},n))])}))]),1040,[`items`])]),_:2},1040)]),_:2},1040)],64))]),_:2},1032,[`value`]))),128))]),_:3},16))}});export{j as default};
@@ -0,0 +1,33 @@
1
+ import { DefinedValue } from "../../types/common.js";
2
+ import { FocusOutsideEvent, PointerDownOutsideEvent } from "../../types/event.js";
3
+ import { MenuOptionData } from "../menu/types.js";
4
+ import { MenubarCompactProps, MenubarCompactSlots } from "./types.js";
5
+ import * as _$vue from "vue";
6
+
7
+ //#region src/components/menubar/menubar-compact.vue.d.ts
8
+ declare const __VLS_export: <T extends DefinedValue = DefinedValue>(__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<{
9
+ props: _$vue.PublicProps & __VLS_PrettifyLocal<MenubarCompactProps<T> & {
10
+ onSelect?: ((item: MenuOptionData<T>, event: Event) => any) | undefined;
11
+ "onUpdate:modelValue"?: ((value: T) => any) | undefined;
12
+ onEscapeKeyDown?: ((event: KeyboardEvent) => any) | undefined;
13
+ onPointerDownOutside?: ((event: PointerDownOutsideEvent) => any) | undefined;
14
+ onFocusOutside?: ((event: FocusOutsideEvent) => any) | undefined;
15
+ onInteractOutside?: ((event: PointerDownOutsideEvent | FocusOutsideEvent) => any) | undefined;
16
+ "onUpdate:open"?: ((value: boolean) => any) | undefined;
17
+ onEntryFocus?: ((event: Event) => any) | undefined;
18
+ onOpenAutoFocus?: ((event: Event) => any) | undefined;
19
+ onCloseAutoFocus?: ((event: Event) => any) | undefined;
20
+ }> & (typeof globalThis extends {
21
+ __VLS_PROPS_FALLBACK: infer P;
22
+ } ? P : {});
23
+ expose: (exposed: {}) => void;
24
+ attrs: any;
25
+ slots: MenubarCompactSlots<T>;
26
+ emit: ((evt: "select", item: MenuOptionData<T>, event: Event) => void) & ((evt: "update:modelValue", value: T) => void) & ((evt: "escapeKeyDown", event: KeyboardEvent) => void) & ((evt: "pointerDownOutside", event: PointerDownOutsideEvent) => void) & ((evt: "focusOutside", event: FocusOutsideEvent) => void) & ((evt: "interactOutside", event: PointerDownOutsideEvent | FocusOutsideEvent) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "entryFocus", event: Event) => void) & ((evt: "openAutoFocus", event: Event) => void) & ((evt: "closeAutoFocus", event: Event) => void);
27
+ }>) => _$vue.VNode & {
28
+ __ctx?: Awaited<typeof __VLS_setup>;
29
+ };
30
+ declare const _default: typeof __VLS_export;
31
+ type __VLS_PrettifyLocal<T> = (T extends any ? { [K in keyof T]: T[K] } : { [K in keyof T as K]: T[K] }) & {};
32
+ //#endregion
33
+ export { _default };
@@ -0,0 +1 @@
1
+ import{wrapArray as e}from"../../shared/object.js";import"../../shared/index.js";import{useForwardListeners as t}from"../../composables/use-forward-listeners.js";import"../../composables/index.js";import n from"../menu/menu-content.js";import"../menu/index.js";import{useMenubarCollectionContext as r,useMenubarMenuContext as i,useMenubarRootContext as a}from"./context.js";import{isTriggerLink as o}from"./shared.js";import{createBlock as s,defineComponent as c,mergeProps as l,openBlock as u,renderSlot as d,shallowRef as f,toHandlers as p,unref as m,withCtx as h,withKeys as g}from"vue";const _=c({name:`MenubarContent`,__name:`menubar-content`,props:{popupProps:{},placement:{},side:{},sideOffset:{},sideFlip:{type:Boolean},align:{default:`start`},alignOffset:{},alignFlip:{type:Boolean},avoidCollisions:{type:Boolean},collisionBoundary:{},collisionPadding:{},arrowPadding:{},hideShiftedArrow:{type:Boolean},sticky:{},hideWhenDetached:{type:Boolean},positionStrategy:{},updatePositionStrategy:{},disableUpdateOnLayoutShift:{type:Boolean},prioritizePosition:{type:Boolean},reference:{},forceMount:{type:Boolean},loop:{type:Boolean}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`,`entryFocus`],setup(c,{emit:_}){let v=c,y=t(_),{dir:b,loop:x,modelValue:S,onMenuOpen:C,setTriggerLink:w}=a(`MenubarContent`),{value:T,triggerId:E,contentId:D,triggerElement:O,wasKeyboardTriggerOpen:k}=i(`MenubarContent`),{getOrderedItems:A}=r(`MenubarContent`),j=f(!1),M=e=>{!S.value&&!j.value&&O.value?.focus(),j.value=!1,e.preventDefault()},N=e=>{let t=e.target;A().some(e=>e.element.contains(t))&&e.preventDefault()},P=()=>{j.value=!0},F=e=>{k.value||e.preventDefault()},I=t=>{let n=t.target.hasAttribute(`data-soybean-menubar-subtrigger`),r=b.value===`rtl`?`ArrowRight`:`ArrowLeft`,i=t.key===r;if(!i&&n)return;let a=A(),s=a.map(e=>e.data.value);i&&s.reverse();let c=s.findIndex(e=>e===T.value),l=(x.value?e(s,c+1):s.slice(c+1))[0],u=a.find(e=>e.data.value===l);!l||!u||(o(u.element)?(w(),u.element.focus()):C(l))};return(e,t)=>(u(),s(m(n),l(v,{id:m(D),"aria-labelledby":m(E),"data-slot":`content`},p(m(y)),{onCloseAutoFocus:M,onFocusOutside:N,onInteractOutside:P,onEntryFocus:F,onKeydown:g(I,[`arrow-right`,`arrow-left`])}),{default:h(()=>[d(e.$slots,`default`)]),_:3},16,[`id`,`aria-labelledby`]))}});export{_ as default};
@@ -0,0 +1,38 @@
1
+ import { Align } from "../../types/common.js";
2
+ import { FocusOutsideEvent, PointerDownOutsideEvent } from "../../types/event.js";
3
+ import { MenubarContentProps } from "./types.js";
4
+ import * as _$vue from "vue";
5
+
6
+ //#region src/components/menubar/menubar-content.vue.d.ts
7
+ declare var __VLS_14: {};
8
+ type __VLS_Slots = {} & {
9
+ default?: (props: typeof __VLS_14) => any;
10
+ };
11
+ declare const __VLS_base: _$vue.DefineComponent<MenubarContentProps, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {
12
+ escapeKeyDown: (event: KeyboardEvent) => any;
13
+ pointerDownOutside: (event: PointerDownOutsideEvent) => any;
14
+ focusOutside: (event: FocusOutsideEvent) => any;
15
+ interactOutside: (event: PointerDownOutsideEvent | FocusOutsideEvent) => any;
16
+ entryFocus: (event: Event) => any;
17
+ openAutoFocus: (event: Event) => any;
18
+ closeAutoFocus: (event: Event) => any;
19
+ }, string, _$vue.PublicProps, Readonly<MenubarContentProps> & Readonly<{
20
+ onEscapeKeyDown?: ((event: KeyboardEvent) => any) | undefined;
21
+ onPointerDownOutside?: ((event: PointerDownOutsideEvent) => any) | undefined;
22
+ onFocusOutside?: ((event: FocusOutsideEvent) => any) | undefined;
23
+ onInteractOutside?: ((event: PointerDownOutsideEvent | FocusOutsideEvent) => any) | undefined;
24
+ onEntryFocus?: ((event: Event) => any) | undefined;
25
+ onOpenAutoFocus?: ((event: Event) => any) | undefined;
26
+ onCloseAutoFocus?: ((event: Event) => any) | undefined;
27
+ }>, {
28
+ align: Align;
29
+ }, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
30
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
31
+ declare const _default: typeof __VLS_export;
32
+ type __VLS_WithSlots<T, S> = T & {
33
+ new (): {
34
+ $slots: S;
35
+ };
36
+ };
37
+ //#endregion
38
+ export { _default };
@@ -0,0 +1 @@
1
+ import{wrapArray as e}from"../../shared/object.js";import"../../shared/index.js";import{provideMenuSubAttributeContext as t}from"../menu/context.js";import n from"../menu/menu-root.js";import"../menu/index.js";import{provideMenubarMenuContext as r,useMenubarCollectionContext as i,useMenubarRootContext as a}from"./context.js";import{computed as o,createBlock as s,defineComponent as c,openBlock as l,renderSlot as u,shallowRef as d,unref as f,useId as p,watch as m,withCtx as h}from"vue";const g=c({name:`MenubarMenu`,__name:`menubar-menu`,props:{value:{}},setup(c){let g=c,{dir:_,onMenuClose:v,modelValue:y,loop:b,onMenuOpen:x}=a(`MenubarMenu`),{getOrderedItems:S}=i(`MenubarMenu`),C=`soybean-menubar-menu-${p()}`,w=o(()=>g.value??C),T=d(),E=d(`soybean-menubar-content-${p()}`),D=d(!1),O=o(()=>y.value===w.value),k=`soybean-menubar-trigger-${p()}`,A=e=>{e||v()},j=t=>{let n=t.target,r=_.value===`rtl`?`ArrowLeft`:`ArrowRight`;if(t.key!==r||n.hasAttribute(`data-soybean-menubar-subtrigger`))return;let i=S().map(e=>e.data.value),a=i.findIndex(e=>e===y.value),o=(b.value?e(i,a+1):i.slice(a+1))[0];o&&x(o)};return m(O,e=>{e||(D.value=!1)}),r({value:w,triggerId:k,contentId:E,triggerElement:T,wasKeyboardTriggerOpen:D,open:O}),t({subTrigger:o(()=>({"data-soybean-menubar-subtrigger":``})),subContent:o(()=>({onKeydown:j}))}),(e,t)=>(l(),s(f(n),{open:O.value,dir:f(_),modal:!1,"onUpdate:open":A},{default:h(()=>[u(e.$slots,`default`,{open:O.value,value:w.value})]),_:3},8,[`open`,`dir`]))}});export{g as default};