@rupe/v-datepicker 1.0.0-alpha.0

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 (639) hide show
  1. package/LICENSE +21 -0
  2. package/dist/components/Calendar/CalendarCell.d.ts +17 -0
  3. package/dist/components/Calendar/CalendarCell.vue.js +34 -0
  4. package/dist/components/Calendar/CalendarCell.vue.js.map +1 -0
  5. package/dist/components/Calendar/CalendarCell.vue2.js +5 -0
  6. package/dist/components/Calendar/CalendarCell.vue2.js.map +1 -0
  7. package/dist/components/Calendar/CalendarCellTrigger.d.ts +72 -0
  8. package/dist/components/Calendar/CalendarCellTrigger.vue.js +159 -0
  9. package/dist/components/Calendar/CalendarCellTrigger.vue.js.map +1 -0
  10. package/dist/components/Calendar/CalendarCellTrigger.vue2.js +5 -0
  11. package/dist/components/Calendar/CalendarCellTrigger.vue2.js.map +1 -0
  12. package/dist/components/Calendar/CalendarGrid.d.ts +13 -0
  13. package/dist/components/Calendar/CalendarGrid.vue.js +40 -0
  14. package/dist/components/Calendar/CalendarGrid.vue.js.map +1 -0
  15. package/dist/components/Calendar/CalendarGrid.vue2.js +5 -0
  16. package/dist/components/Calendar/CalendarGrid.vue2.js.map +1 -0
  17. package/dist/components/Calendar/CalendarGridBody.d.ts +13 -0
  18. package/dist/components/Calendar/CalendarGridBody.vue.js +25 -0
  19. package/dist/components/Calendar/CalendarGridBody.vue.js.map +1 -0
  20. package/dist/components/Calendar/CalendarGridBody.vue2.js +5 -0
  21. package/dist/components/Calendar/CalendarGridBody.vue2.js.map +1 -0
  22. package/dist/components/Calendar/CalendarGridHead.d.ts +13 -0
  23. package/dist/components/Calendar/CalendarGridHead.vue.js +25 -0
  24. package/dist/components/Calendar/CalendarGridHead.vue.js.map +1 -0
  25. package/dist/components/Calendar/CalendarGridHead.vue2.js +5 -0
  26. package/dist/components/Calendar/CalendarGridHead.vue2.js.map +1 -0
  27. package/dist/components/Calendar/CalendarGridRow.d.ts +13 -0
  28. package/dist/components/Calendar/CalendarGridRow.vue.js +25 -0
  29. package/dist/components/Calendar/CalendarGridRow.vue.js.map +1 -0
  30. package/dist/components/Calendar/CalendarGridRow.vue2.js +5 -0
  31. package/dist/components/Calendar/CalendarGridRow.vue2.js.map +1 -0
  32. package/dist/components/Calendar/CalendarHeadCell.d.ts +13 -0
  33. package/dist/components/Calendar/CalendarHeadCell.vue.js +25 -0
  34. package/dist/components/Calendar/CalendarHeadCell.vue.js.map +1 -0
  35. package/dist/components/Calendar/CalendarHeadCell.vue2.js +5 -0
  36. package/dist/components/Calendar/CalendarHeadCell.vue2.js.map +1 -0
  37. package/dist/components/Calendar/CalendarHeader.d.ts +13 -0
  38. package/dist/components/Calendar/CalendarHeader.vue.js +25 -0
  39. package/dist/components/Calendar/CalendarHeader.vue.js.map +1 -0
  40. package/dist/components/Calendar/CalendarHeader.vue2.js +5 -0
  41. package/dist/components/Calendar/CalendarHeader.vue2.js.map +1 -0
  42. package/dist/components/Calendar/CalendarHeading.d.ts +21 -0
  43. package/dist/components/Calendar/CalendarHeading.vue.js +33 -0
  44. package/dist/components/Calendar/CalendarHeading.vue.js.map +1 -0
  45. package/dist/components/Calendar/CalendarHeading.vue2.js +5 -0
  46. package/dist/components/Calendar/CalendarHeading.vue2.js.map +1 -0
  47. package/dist/components/Calendar/CalendarMonthHeading.d.ts +22 -0
  48. package/dist/components/Calendar/CalendarMonthHeading.vue.js +49 -0
  49. package/dist/components/Calendar/CalendarMonthHeading.vue.js.map +1 -0
  50. package/dist/components/Calendar/CalendarMonthHeading.vue2.js +5 -0
  51. package/dist/components/Calendar/CalendarMonthHeading.vue2.js.map +1 -0
  52. package/dist/components/Calendar/CalendarMonthYearOverlay.d.ts +27 -0
  53. package/dist/components/Calendar/CalendarMonthYearOverlay.vue.js +61 -0
  54. package/dist/components/Calendar/CalendarMonthYearOverlay.vue.js.map +1 -0
  55. package/dist/components/Calendar/CalendarMonthYearOverlay.vue2.js +5 -0
  56. package/dist/components/Calendar/CalendarMonthYearOverlay.vue2.js.map +1 -0
  57. package/dist/components/Calendar/CalendarNext.d.ts +21 -0
  58. package/dist/components/Calendar/CalendarNext.vue.js +42 -0
  59. package/dist/components/Calendar/CalendarNext.vue.js.map +1 -0
  60. package/dist/components/Calendar/CalendarNext.vue2.js +5 -0
  61. package/dist/components/Calendar/CalendarNext.vue2.js.map +1 -0
  62. package/dist/components/Calendar/CalendarOverlayItem.d.ts +24 -0
  63. package/dist/components/Calendar/CalendarOverlayItem.vue.js +34 -0
  64. package/dist/components/Calendar/CalendarOverlayItem.vue.js.map +1 -0
  65. package/dist/components/Calendar/CalendarOverlayItem.vue2.js +5 -0
  66. package/dist/components/Calendar/CalendarOverlayItem.vue2.js.map +1 -0
  67. package/dist/components/Calendar/CalendarPrev.d.ts +21 -0
  68. package/dist/components/Calendar/CalendarPrev.vue.js +42 -0
  69. package/dist/components/Calendar/CalendarPrev.vue.js.map +1 -0
  70. package/dist/components/Calendar/CalendarPrev.vue2.js +5 -0
  71. package/dist/components/Calendar/CalendarPrev.vue2.js.map +1 -0
  72. package/dist/components/Calendar/CalendarRoot.d.ts +210 -0
  73. package/dist/components/Calendar/CalendarRoot.vue.js +253 -0
  74. package/dist/components/Calendar/CalendarRoot.vue.js.map +1 -0
  75. package/dist/components/Calendar/CalendarRoot.vue2.js +8 -0
  76. package/dist/components/Calendar/CalendarRoot.vue2.js.map +1 -0
  77. package/dist/components/Calendar/CalendarYearHeading.d.ts +22 -0
  78. package/dist/components/Calendar/CalendarYearHeading.vue.js +49 -0
  79. package/dist/components/Calendar/CalendarYearHeading.vue.js.map +1 -0
  80. package/dist/components/Calendar/CalendarYearHeading.vue2.js +5 -0
  81. package/dist/components/Calendar/CalendarYearHeading.vue2.js.map +1 -0
  82. package/dist/components/Calendar/index.d.ts +15 -0
  83. package/dist/components/Calendar/useCalendar.d.ts +50 -0
  84. package/dist/components/Calendar/useCalendar.js +317 -0
  85. package/dist/components/Calendar/useCalendar.js.map +1 -0
  86. package/dist/components/ConfigProvider/ConfigProvider.d.ts +51 -0
  87. package/dist/components/ConfigProvider/ConfigProvider.vue.js +7 -0
  88. package/dist/components/ConfigProvider/ConfigProvider.vue.js.map +1 -0
  89. package/dist/components/ConfigProvider/index.d.ts +1 -0
  90. package/dist/components/DateField/DateFieldInput.d.ts +15 -0
  91. package/dist/components/DateField/DateFieldInput.vue.js +70 -0
  92. package/dist/components/DateField/DateFieldInput.vue.js.map +1 -0
  93. package/dist/components/DateField/DateFieldInput.vue2.js +5 -0
  94. package/dist/components/DateField/DateFieldInput.vue2.js.map +1 -0
  95. package/dist/components/DateField/DateFieldRoot.d.ts +151 -0
  96. package/dist/components/DateField/DateFieldRoot.vue.js +237 -0
  97. package/dist/components/DateField/DateFieldRoot.vue.js.map +1 -0
  98. package/dist/components/DateField/DateFieldRoot.vue2.js +8 -0
  99. package/dist/components/DateField/DateFieldRoot.vue2.js.map +1 -0
  100. package/dist/components/DateField/index.d.ts +2 -0
  101. package/dist/components/DatePicker/DatePickerAnchor.d.ts +11 -0
  102. package/dist/components/DatePicker/DatePickerAnchor.vue.js +29 -0
  103. package/dist/components/DatePicker/DatePickerAnchor.vue.js.map +1 -0
  104. package/dist/components/DatePicker/DatePickerAnchor.vue2.js +5 -0
  105. package/dist/components/DatePicker/DatePickerAnchor.vue2.js.map +1 -0
  106. package/dist/components/DatePicker/DatePickerArrow.d.ts +11 -0
  107. package/dist/components/DatePicker/DatePickerArrow.vue.js +31 -0
  108. package/dist/components/DatePicker/DatePickerArrow.vue.js.map +1 -0
  109. package/dist/components/DatePicker/DatePickerArrow.vue2.js +5 -0
  110. package/dist/components/DatePicker/DatePickerArrow.vue2.js.map +1 -0
  111. package/dist/components/DatePicker/DatePickerCalendar.d.ts +17 -0
  112. package/dist/components/DatePicker/DatePickerCalendar.vue.js +60 -0
  113. package/dist/components/DatePicker/DatePickerCalendar.vue.js.map +1 -0
  114. package/dist/components/DatePicker/DatePickerCalendar.vue2.js +5 -0
  115. package/dist/components/DatePicker/DatePickerCalendar.vue2.js.map +1 -0
  116. package/dist/components/DatePicker/DatePickerCell.d.ts +11 -0
  117. package/dist/components/DatePicker/DatePickerCell.vue.js +28 -0
  118. package/dist/components/DatePicker/DatePickerCell.vue.js.map +1 -0
  119. package/dist/components/DatePicker/DatePickerCell.vue2.js +5 -0
  120. package/dist/components/DatePicker/DatePickerCell.vue2.js.map +1 -0
  121. package/dist/components/DatePicker/DatePickerCellTrigger.d.ts +10 -0
  122. package/dist/components/DatePicker/DatePickerCellTrigger.vue.js +29 -0
  123. package/dist/components/DatePicker/DatePickerCellTrigger.vue.js.map +1 -0
  124. package/dist/components/DatePicker/DatePickerCellTrigger.vue2.js +5 -0
  125. package/dist/components/DatePicker/DatePickerCellTrigger.vue2.js.map +1 -0
  126. package/dist/components/DatePicker/DatePickerClose.d.ts +11 -0
  127. package/dist/components/DatePicker/DatePickerClose.vue.js +28 -0
  128. package/dist/components/DatePicker/DatePickerClose.vue.js.map +1 -0
  129. package/dist/components/DatePicker/DatePickerClose.vue2.js +5 -0
  130. package/dist/components/DatePicker/DatePickerClose.vue2.js.map +1 -0
  131. package/dist/components/DatePicker/DatePickerContent.d.ts +31 -0
  132. package/dist/components/DatePicker/DatePickerContent.vue.js +69 -0
  133. package/dist/components/DatePicker/DatePickerContent.vue.js.map +1 -0
  134. package/dist/components/DatePicker/DatePickerContent.vue2.js +5 -0
  135. package/dist/components/DatePicker/DatePickerContent.vue2.js.map +1 -0
  136. package/dist/components/DatePicker/DatePickerField.d.ts +16 -0
  137. package/dist/components/DatePicker/DatePickerField.vue.js +55 -0
  138. package/dist/components/DatePicker/DatePickerField.vue.js.map +1 -0
  139. package/dist/components/DatePicker/DatePickerField.vue2.js +5 -0
  140. package/dist/components/DatePicker/DatePickerField.vue2.js.map +1 -0
  141. package/dist/components/DatePicker/DatePickerGrid.d.ts +11 -0
  142. package/dist/components/DatePicker/DatePickerGrid.vue.js +27 -0
  143. package/dist/components/DatePicker/DatePickerGrid.vue.js.map +1 -0
  144. package/dist/components/DatePicker/DatePickerGrid.vue2.js +5 -0
  145. package/dist/components/DatePicker/DatePickerGrid.vue2.js.map +1 -0
  146. package/dist/components/DatePicker/DatePickerGridBody.d.ts +11 -0
  147. package/dist/components/DatePicker/DatePickerGridBody.vue.js +27 -0
  148. package/dist/components/DatePicker/DatePickerGridBody.vue.js.map +1 -0
  149. package/dist/components/DatePicker/DatePickerGridBody.vue2.js +5 -0
  150. package/dist/components/DatePicker/DatePickerGridBody.vue2.js.map +1 -0
  151. package/dist/components/DatePicker/DatePickerGridHead.d.ts +11 -0
  152. package/dist/components/DatePicker/DatePickerGridHead.vue.js +27 -0
  153. package/dist/components/DatePicker/DatePickerGridHead.vue.js.map +1 -0
  154. package/dist/components/DatePicker/DatePickerGridHead.vue2.js +5 -0
  155. package/dist/components/DatePicker/DatePickerGridHead.vue2.js.map +1 -0
  156. package/dist/components/DatePicker/DatePickerGridRow.d.ts +11 -0
  157. package/dist/components/DatePicker/DatePickerGridRow.vue.js +27 -0
  158. package/dist/components/DatePicker/DatePickerGridRow.vue.js.map +1 -0
  159. package/dist/components/DatePicker/DatePickerGridRow.vue2.js +5 -0
  160. package/dist/components/DatePicker/DatePickerGridRow.vue2.js.map +1 -0
  161. package/dist/components/DatePicker/DatePickerHeadCell.d.ts +11 -0
  162. package/dist/components/DatePicker/DatePickerHeadCell.vue.js +27 -0
  163. package/dist/components/DatePicker/DatePickerHeadCell.vue.js.map +1 -0
  164. package/dist/components/DatePicker/DatePickerHeadCell.vue2.js +5 -0
  165. package/dist/components/DatePicker/DatePickerHeadCell.vue2.js.map +1 -0
  166. package/dist/components/DatePicker/DatePickerHeader.d.ts +11 -0
  167. package/dist/components/DatePicker/DatePickerHeader.vue.js +27 -0
  168. package/dist/components/DatePicker/DatePickerHeader.vue.js.map +1 -0
  169. package/dist/components/DatePicker/DatePickerHeader.vue2.js +5 -0
  170. package/dist/components/DatePicker/DatePickerHeader.vue2.js.map +1 -0
  171. package/dist/components/DatePicker/DatePickerHeading.d.ts +19 -0
  172. package/dist/components/DatePicker/DatePickerHeading.vue.js +29 -0
  173. package/dist/components/DatePicker/DatePickerHeading.vue.js.map +1 -0
  174. package/dist/components/DatePicker/DatePickerHeading.vue2.js +5 -0
  175. package/dist/components/DatePicker/DatePickerHeading.vue2.js.map +1 -0
  176. package/dist/components/DatePicker/DatePickerInput.d.ts +11 -0
  177. package/dist/components/DatePicker/DatePickerInput.vue.js +27 -0
  178. package/dist/components/DatePicker/DatePickerInput.vue.js.map +1 -0
  179. package/dist/components/DatePicker/DatePickerInput.vue2.js +5 -0
  180. package/dist/components/DatePicker/DatePickerInput.vue2.js.map +1 -0
  181. package/dist/components/DatePicker/DatePickerMonthHeading.d.ts +13 -0
  182. package/dist/components/DatePicker/DatePickerMonthHeading.vue.js +27 -0
  183. package/dist/components/DatePicker/DatePickerMonthHeading.vue.js.map +1 -0
  184. package/dist/components/DatePicker/DatePickerMonthHeading.vue2.js +5 -0
  185. package/dist/components/DatePicker/DatePickerMonthHeading.vue2.js.map +1 -0
  186. package/dist/components/DatePicker/DatePickerMonthYearOverlay.d.ts +24 -0
  187. package/dist/components/DatePicker/DatePickerMonthYearOverlay.vue.js +30 -0
  188. package/dist/components/DatePicker/DatePickerMonthYearOverlay.vue.js.map +1 -0
  189. package/dist/components/DatePicker/DatePickerMonthYearOverlay.vue2.js +5 -0
  190. package/dist/components/DatePicker/DatePickerMonthYearOverlay.vue2.js.map +1 -0
  191. package/dist/components/DatePicker/DatePickerNext.d.ts +10 -0
  192. package/dist/components/DatePicker/DatePickerNext.vue.js +28 -0
  193. package/dist/components/DatePicker/DatePickerNext.vue.js.map +1 -0
  194. package/dist/components/DatePicker/DatePickerNext.vue2.js +5 -0
  195. package/dist/components/DatePicker/DatePickerNext.vue2.js.map +1 -0
  196. package/dist/components/DatePicker/DatePickerOverlayItem.d.ts +19 -0
  197. package/dist/components/DatePicker/DatePickerOverlayItem.vue.js +25 -0
  198. package/dist/components/DatePicker/DatePickerOverlayItem.vue.js.map +1 -0
  199. package/dist/components/DatePicker/DatePickerOverlayItem.vue2.js +5 -0
  200. package/dist/components/DatePicker/DatePickerOverlayItem.vue2.js.map +1 -0
  201. package/dist/components/DatePicker/DatePickerPrev.d.ts +10 -0
  202. package/dist/components/DatePicker/DatePickerPrev.vue.js +28 -0
  203. package/dist/components/DatePicker/DatePickerPrev.vue.js.map +1 -0
  204. package/dist/components/DatePicker/DatePickerPrev.vue2.js +5 -0
  205. package/dist/components/DatePicker/DatePickerPrev.vue2.js.map +1 -0
  206. package/dist/components/DatePicker/DatePickerRoot.d.ts +84 -0
  207. package/dist/components/DatePicker/DatePickerRoot.vue.js +169 -0
  208. package/dist/components/DatePicker/DatePickerRoot.vue.js.map +1 -0
  209. package/dist/components/DatePicker/DatePickerRoot.vue2.js +8 -0
  210. package/dist/components/DatePicker/DatePickerRoot.vue2.js.map +1 -0
  211. package/dist/components/DatePicker/DatePickerTrigger.d.ts +11 -0
  212. package/dist/components/DatePicker/DatePickerTrigger.vue.js +37 -0
  213. package/dist/components/DatePicker/DatePickerTrigger.vue.js.map +1 -0
  214. package/dist/components/DatePicker/DatePickerTrigger.vue2.js +5 -0
  215. package/dist/components/DatePicker/DatePickerTrigger.vue2.js.map +1 -0
  216. package/dist/components/DatePicker/DatePickerYearHeading.d.ts +13 -0
  217. package/dist/components/DatePicker/DatePickerYearHeading.vue.js +27 -0
  218. package/dist/components/DatePicker/DatePickerYearHeading.vue.js.map +1 -0
  219. package/dist/components/DatePicker/DatePickerYearHeading.vue2.js +5 -0
  220. package/dist/components/DatePicker/DatePickerYearHeading.vue2.js.map +1 -0
  221. package/dist/components/DatePicker/index.d.ts +24 -0
  222. package/dist/components/DismissableLayer/DismissableLayer.d.ts +67 -0
  223. package/dist/components/DismissableLayer/DismissableLayer.vue.js +118 -0
  224. package/dist/components/DismissableLayer/DismissableLayer.vue.js.map +1 -0
  225. package/dist/components/DismissableLayer/DismissableLayer.vue2.js +7 -0
  226. package/dist/components/DismissableLayer/DismissableLayer.vue2.js.map +1 -0
  227. package/dist/components/DismissableLayer/DismissableLayerBranch.d.ts +11 -0
  228. package/dist/components/DismissableLayer/index.d.ts +3 -0
  229. package/dist/components/DismissableLayer/utils.d.ts +28 -0
  230. package/dist/components/DismissableLayer/utils.js +112 -0
  231. package/dist/components/DismissableLayer/utils.js.map +1 -0
  232. package/dist/components/FocusScope/FocusScope.d.ts +82 -0
  233. package/dist/components/FocusScope/FocusScope.test.d.ts +1 -0
  234. package/dist/components/FocusScope/FocusScope.vue.js +149 -0
  235. package/dist/components/FocusScope/FocusScope.vue.js.map +1 -0
  236. package/dist/components/FocusScope/FocusScope.vue2.js +5 -0
  237. package/dist/components/FocusScope/FocusScope.vue2.js.map +1 -0
  238. package/dist/components/FocusScope/index.d.ts +1 -0
  239. package/dist/components/FocusScope/stack.d.ts +12 -0
  240. package/dist/components/FocusScope/stack.js +38 -0
  241. package/dist/components/FocusScope/stack.js.map +1 -0
  242. package/dist/components/FocusScope/utils.d.ts +46 -0
  243. package/dist/components/FocusScope/utils.js +70 -0
  244. package/dist/components/FocusScope/utils.js.map +1 -0
  245. package/dist/components/Popover/PopoverAnchor.d.ts +11 -0
  246. package/dist/components/Popover/PopoverAnchor.vue.js +37 -0
  247. package/dist/components/Popover/PopoverAnchor.vue.js.map +1 -0
  248. package/dist/components/Popover/PopoverAnchor.vue2.js +5 -0
  249. package/dist/components/Popover/PopoverAnchor.vue2.js.map +1 -0
  250. package/dist/components/Popover/PopoverArrow.d.ts +15 -0
  251. package/dist/components/Popover/PopoverArrow.vue.js +31 -0
  252. package/dist/components/Popover/PopoverArrow.vue.js.map +1 -0
  253. package/dist/components/Popover/PopoverArrow.vue2.js +5 -0
  254. package/dist/components/Popover/PopoverArrow.vue2.js.map +1 -0
  255. package/dist/components/Popover/PopoverClose.d.ts +13 -0
  256. package/dist/components/Popover/PopoverClose.vue.js +34 -0
  257. package/dist/components/Popover/PopoverClose.vue.js.map +1 -0
  258. package/dist/components/Popover/PopoverClose.vue2.js +5 -0
  259. package/dist/components/Popover/PopoverClose.vue2.js.map +1 -0
  260. package/dist/components/Popover/PopoverContent.d.ts +32 -0
  261. package/dist/components/Popover/PopoverContent.vue.js +61 -0
  262. package/dist/components/Popover/PopoverContent.vue.js.map +1 -0
  263. package/dist/components/Popover/PopoverContent.vue2.js +5 -0
  264. package/dist/components/Popover/PopoverContent.vue2.js.map +1 -0
  265. package/dist/components/Popover/PopoverContentImpl.d.ts +47 -0
  266. package/dist/components/Popover/PopoverContentImpl.vue.js +97 -0
  267. package/dist/components/Popover/PopoverContentImpl.vue.js.map +1 -0
  268. package/dist/components/Popover/PopoverContentImpl.vue2.js +5 -0
  269. package/dist/components/Popover/PopoverContentImpl.vue2.js.map +1 -0
  270. package/dist/components/Popover/PopoverContentNonModal.d.ts +32 -0
  271. package/dist/components/Popover/PopoverContentNonModal.vue.js +78 -0
  272. package/dist/components/Popover/PopoverContentNonModal.vue.js.map +1 -0
  273. package/dist/components/Popover/PopoverContentNonModal.vue2.js +5 -0
  274. package/dist/components/Popover/PopoverContentNonModal.vue2.js.map +1 -0
  275. package/dist/components/Popover/PopoverPortal.d.ts +11 -0
  276. package/dist/components/Popover/PopoverPortal.vue.js +26 -0
  277. package/dist/components/Popover/PopoverPortal.vue.js.map +1 -0
  278. package/dist/components/Popover/PopoverPortal.vue2.js +5 -0
  279. package/dist/components/Popover/PopoverPortal.vue2.js.map +1 -0
  280. package/dist/components/Popover/PopoverRoot.d.ts +55 -0
  281. package/dist/components/Popover/PopoverRoot.vue.js +55 -0
  282. package/dist/components/Popover/PopoverRoot.vue.js.map +1 -0
  283. package/dist/components/Popover/PopoverRoot.vue2.js +8 -0
  284. package/dist/components/Popover/PopoverRoot.vue2.js.map +1 -0
  285. package/dist/components/Popover/PopoverTrigger.d.ts +13 -0
  286. package/dist/components/Popover/PopoverTrigger.vue.js +51 -0
  287. package/dist/components/Popover/PopoverTrigger.vue.js.map +1 -0
  288. package/dist/components/Popover/PopoverTrigger.vue2.js +5 -0
  289. package/dist/components/Popover/PopoverTrigger.vue2.js.map +1 -0
  290. package/dist/components/Popover/index.d.ts +7 -0
  291. package/dist/components/Popper/PopperAnchor.d.ts +19 -0
  292. package/dist/components/Popper/PopperAnchor.vue.js +37 -0
  293. package/dist/components/Popper/PopperAnchor.vue.js.map +1 -0
  294. package/dist/components/Popper/PopperAnchor.vue2.js +5 -0
  295. package/dist/components/Popper/PopperAnchor.vue2.js.map +1 -0
  296. package/dist/components/Popper/PopperArrow.d.ts +15 -0
  297. package/dist/components/Popper/PopperArrow.vue.js +76 -0
  298. package/dist/components/Popper/PopperArrow.vue.js.map +1 -0
  299. package/dist/components/Popper/PopperArrow.vue2.js +5 -0
  300. package/dist/components/Popper/PopperArrow.vue2.js.map +1 -0
  301. package/dist/components/Popper/PopperContent.d.ts +179 -0
  302. package/dist/components/Popper/PopperContent.vue.js +9 -0
  303. package/dist/components/Popper/PopperContent.vue.js.map +1 -0
  304. package/dist/components/Popper/PopperContent.vue2.js +230 -0
  305. package/dist/components/Popper/PopperContent.vue2.js.map +1 -0
  306. package/dist/components/Popper/PopperRoot.d.ts +19 -0
  307. package/dist/components/Popper/PopperRoot.vue.js +25 -0
  308. package/dist/components/Popper/PopperRoot.vue.js.map +1 -0
  309. package/dist/components/Popper/PopperRoot.vue2.js +8 -0
  310. package/dist/components/Popper/PopperRoot.vue2.js.map +1 -0
  311. package/dist/components/Popper/index.d.ts +5 -0
  312. package/dist/components/Popper/utils.d.ts +12 -0
  313. package/dist/components/Popper/utils.js +46 -0
  314. package/dist/components/Popper/utils.js.map +1 -0
  315. package/dist/components/Presence/Presence.d.ts +43 -0
  316. package/dist/components/Presence/Presence.js +61 -0
  317. package/dist/components/Presence/Presence.js.map +1 -0
  318. package/dist/components/Presence/index.d.ts +1 -0
  319. package/dist/components/Presence/usePresence.d.ts +4 -0
  320. package/dist/components/Presence/usePresence.js +131 -0
  321. package/dist/components/Presence/usePresence.js.map +1 -0
  322. package/dist/components/Primitive/Primitive.d.ts +39 -0
  323. package/dist/components/Primitive/Primitive.js +29 -0
  324. package/dist/components/Primitive/Primitive.js.map +1 -0
  325. package/dist/components/Primitive/Slot.d.ts +5 -0
  326. package/dist/components/Primitive/Slot.js +30 -0
  327. package/dist/components/Primitive/Slot.js.map +1 -0
  328. package/dist/components/Primitive/index.d.ts +3 -0
  329. package/dist/components/Primitive/usePrimitiveElement.d.ts +5 -0
  330. package/dist/components/Primitive/usePrimitiveElement.js +14 -0
  331. package/dist/components/Primitive/usePrimitiveElement.js.map +1 -0
  332. package/dist/components/Teleport/Teleport.d.ts +37 -0
  333. package/dist/components/Teleport/Teleport.vue.js +28 -0
  334. package/dist/components/Teleport/Teleport.vue.js.map +1 -0
  335. package/dist/components/Teleport/Teleport.vue2.js +5 -0
  336. package/dist/components/Teleport/Teleport.vue2.js.map +1 -0
  337. package/dist/components/Teleport/index.d.ts +1 -0
  338. package/dist/components/VisuallyHidden/VisuallyHidden.d.ts +16 -0
  339. package/dist/components/VisuallyHidden/VisuallyHidden.vue.js +49 -0
  340. package/dist/components/VisuallyHidden/VisuallyHidden.vue.js.map +1 -0
  341. package/dist/components/VisuallyHidden/VisuallyHidden.vue2.js +5 -0
  342. package/dist/components/VisuallyHidden/VisuallyHidden.vue2.js.map +1 -0
  343. package/dist/components/VisuallyHidden/VisuallyHiddenInput.d.ts +14 -0
  344. package/dist/components/VisuallyHidden/VisuallyHiddenInputBubble.d.ts +22 -0
  345. package/dist/components/VisuallyHidden/index.d.ts +2 -0
  346. package/dist/date/calendar.d.ts +59 -0
  347. package/dist/date/calendar.js +90 -0
  348. package/dist/date/calendar.js.map +1 -0
  349. package/dist/date/comparators.d.ts +80 -0
  350. package/dist/date/comparators.js +61 -0
  351. package/dist/date/comparators.js.map +1 -0
  352. package/dist/date/index.d.ts +3 -0
  353. package/dist/date/types.d.ts +28 -0
  354. package/dist/date/utils.d.ts +12 -0
  355. package/dist/date/utils.js +10 -0
  356. package/dist/date/utils.js.map +1 -0
  357. package/dist/index.cjs +9097 -0
  358. package/dist/index.cjs.map +1 -0
  359. package/dist/index.d.ts +27 -0
  360. package/dist/index.js +54 -0
  361. package/dist/index.js.map +1 -0
  362. package/dist/node_modules/.pnpm/@floating-ui_core@1.7.3/node_modules/@floating-ui/core/dist/floating-ui.core.js +722 -0
  363. package/dist/node_modules/.pnpm/@floating-ui_core@1.7.3/node_modules/@floating-ui/core/dist/floating-ui.core.js.map +1 -0
  364. package/dist/node_modules/.pnpm/@floating-ui_dom@1.7.4/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +626 -0
  365. package/dist/node_modules/.pnpm/@floating-ui_dom@1.7.4/node_modules/@floating-ui/dom/dist/floating-ui.dom.js.map +1 -0
  366. package/dist/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +174 -0
  367. package/dist/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js.map +1 -0
  368. package/dist/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +155 -0
  369. package/dist/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.js.map +1 -0
  370. package/dist/node_modules/.pnpm/@floating-ui_vue@1.1.9_vue@3.5.26_typescript@5.9.3_/node_modules/@floating-ui/vue/dist/floating-ui.vue.js +180 -0
  371. package/dist/node_modules/.pnpm/@floating-ui_vue@1.1.9_vue@3.5.26_typescript@5.9.3_/node_modules/@floating-ui/vue/dist/floating-ui.vue.js.map +1 -0
  372. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/BuddhistCalendar.js +34 -0
  373. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/BuddhistCalendar.js.map +1 -0
  374. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/CalendarDate.js +213 -0
  375. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/CalendarDate.js.map +1 -0
  376. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/DateFormatter.js +116 -0
  377. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/DateFormatter.js.map +1 -0
  378. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/EthiopicCalendar.js +129 -0
  379. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/EthiopicCalendar.js.map +1 -0
  380. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/GregorianCalendar.js +123 -0
  381. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/GregorianCalendar.js.map +1 -0
  382. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/HebrewCalendar.js +114 -0
  383. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/HebrewCalendar.js.map +1 -0
  384. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/IndianCalendar.js +77 -0
  385. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/IndianCalendar.js.map +1 -0
  386. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/IslamicCalendar.js +141 -0
  387. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/IslamicCalendar.js.map +1 -0
  388. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/JapaneseCalendar.js +155 -0
  389. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/JapaneseCalendar.js.map +1 -0
  390. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/PersianCalendar.js +59 -0
  391. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/PersianCalendar.js.map +1 -0
  392. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/TaiwanCalendar.js +59 -0
  393. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/TaiwanCalendar.js.map +1 -0
  394. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/conversion.js +170 -0
  395. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/conversion.js.map +1 -0
  396. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/createCalendar.js +44 -0
  397. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/createCalendar.js.map +1 -0
  398. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/manipulation.js +301 -0
  399. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/manipulation.js.map +1 -0
  400. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/queries.js +141 -0
  401. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/queries.js.map +1 -0
  402. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/string.js +35 -0
  403. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/string.js.map +1 -0
  404. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/utils.js +7 -0
  405. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/utils.js.map +1 -0
  406. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/weekStartData.js +101 -0
  407. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/weekStartData.js.map +1 -0
  408. package/dist/node_modules/.pnpm/@swc_helpers@0.5.18/node_modules/@swc/helpers/esm/_check_private_redeclaration.js +9 -0
  409. package/dist/node_modules/.pnpm/@swc_helpers@0.5.18/node_modules/@swc/helpers/esm/_check_private_redeclaration.js.map +1 -0
  410. package/dist/node_modules/.pnpm/@swc_helpers@0.5.18/node_modules/@swc/helpers/esm/_class_private_field_init.js +9 -0
  411. package/dist/node_modules/.pnpm/@swc_helpers@0.5.18/node_modules/@swc/helpers/esm/_class_private_field_init.js.map +1 -0
  412. package/dist/node_modules/.pnpm/@vueuse_core@14.1.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.js +140 -0
  413. package/dist/node_modules/.pnpm/@vueuse_core@14.1.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.js.map +1 -0
  414. package/dist/node_modules/.pnpm/@vueuse_shared@14.1.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/shared/dist/index.js +88 -0
  415. package/dist/node_modules/.pnpm/@vueuse_shared@14.1.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/shared/dist/index.js.map +1 -0
  416. package/dist/node_modules/.pnpm/defu@6.1.4/node_modules/defu/dist/defu.js +60 -0
  417. package/dist/node_modules/.pnpm/defu@6.1.4/node_modules/defu/dist/defu.js.map +1 -0
  418. package/dist/shared/arrays.d.ts +37 -0
  419. package/dist/shared/component/Arrow.d.ts +34 -0
  420. package/dist/shared/component/Arrow.vue.js +45 -0
  421. package/dist/shared/component/Arrow.vue.js.map +1 -0
  422. package/dist/shared/component/Arrow.vue2.js +5 -0
  423. package/dist/shared/component/Arrow.vue2.js.map +1 -0
  424. package/dist/shared/component/BaseSeparator.d.ts +26 -0
  425. package/dist/shared/component/index.d.ts +2 -0
  426. package/dist/shared/constant/countryList.d.ts +1 -0
  427. package/dist/shared/constant/index.d.ts +1 -0
  428. package/dist/shared/createContext.d.ts +8 -0
  429. package/dist/shared/createContext.js +26 -0
  430. package/dist/shared/createContext.js.map +1 -0
  431. package/dist/shared/date/comparators.d.ts +27 -0
  432. package/dist/shared/date/comparators.js +27 -0
  433. package/dist/shared/date/comparators.js.map +1 -0
  434. package/dist/shared/date/index.d.ts +8 -0
  435. package/dist/shared/date/parser.d.ts +37 -0
  436. package/dist/shared/date/parser.js +161 -0
  437. package/dist/shared/date/parser.js.map +1 -0
  438. package/dist/shared/date/parts.d.ts +12 -0
  439. package/dist/shared/date/parts.js +17 -0
  440. package/dist/shared/date/parts.js.map +1 -0
  441. package/dist/shared/date/placeholders.d.ts +8 -0
  442. package/dist/shared/date/placeholders.js +196 -0
  443. package/dist/shared/date/placeholders.js.map +1 -0
  444. package/dist/shared/date/segment.d.ts +5 -0
  445. package/dist/shared/date/segment.js +44 -0
  446. package/dist/shared/date/segment.js.map +1 -0
  447. package/dist/shared/date/types.d.ts +37 -0
  448. package/dist/shared/date/useDateField.d.ts +142 -0
  449. package/dist/shared/date/useDateField.js +618 -0
  450. package/dist/shared/date/useDateField.js.map +1 -0
  451. package/dist/shared/date/utils.d.ts +11 -0
  452. package/dist/shared/date/utils.js +76 -0
  453. package/dist/shared/date/utils.js.map +1 -0
  454. package/dist/shared/getActiveElement.d.ts +1 -0
  455. package/dist/shared/getActiveElement.js +14 -0
  456. package/dist/shared/getActiveElement.js.map +1 -0
  457. package/dist/shared/handleAndDispatchCustomEvent.d.ts +3 -0
  458. package/dist/shared/handleAndDispatchCustomEvent.js +15 -0
  459. package/dist/shared/handleAndDispatchCustomEvent.js.map +1 -0
  460. package/dist/shared/index.d.ts +22 -0
  461. package/dist/shared/nullish.d.ts +1 -0
  462. package/dist/shared/nullish.js +7 -0
  463. package/dist/shared/nullish.js.map +1 -0
  464. package/dist/shared/onFocusOutside.d.ts +2 -0
  465. package/dist/shared/renderSlotFragments.d.ts +2 -0
  466. package/dist/shared/renderSlotFragments.js +14 -0
  467. package/dist/shared/renderSlotFragments.js.map +1 -0
  468. package/dist/shared/trap-focus.d.ts +1 -0
  469. package/dist/shared/types.d.ts +48 -0
  470. package/dist/shared/useDateFormatter.d.ts +30 -0
  471. package/dist/shared/useDateFormatter.js +121 -0
  472. package/dist/shared/useDateFormatter.js.map +1 -0
  473. package/dist/shared/useDirection.d.ts +8 -0
  474. package/dist/shared/useDirection.js +12 -0
  475. package/dist/shared/useDirection.js.map +1 -0
  476. package/dist/shared/useEmitAsProps.d.ts +10 -0
  477. package/dist/shared/useEmitAsProps.js +19 -0
  478. package/dist/shared/useEmitAsProps.js.map +1 -0
  479. package/dist/shared/useFocusGuards.d.ts +5 -0
  480. package/dist/shared/useFocusGuards.js +39 -0
  481. package/dist/shared/useFocusGuards.js.map +1 -0
  482. package/dist/shared/useForwardExpose.d.ts +6 -0
  483. package/dist/shared/useForwardExpose.js +49 -0
  484. package/dist/shared/useForwardExpose.js.map +1 -0
  485. package/dist/shared/useForwardProps.d.ts +9 -0
  486. package/dist/shared/useForwardProps.js +27 -0
  487. package/dist/shared/useForwardProps.js.map +1 -0
  488. package/dist/shared/useForwardPropsEmits.d.ts +14 -0
  489. package/dist/shared/useForwardPropsEmits.js +15 -0
  490. package/dist/shared/useForwardPropsEmits.js.map +1 -0
  491. package/dist/shared/useId.d.ts +9 -0
  492. package/dist/shared/useId.js +19 -0
  493. package/dist/shared/useId.js.map +1 -0
  494. package/dist/shared/useIsUsingKeyboard.d.ts +3 -0
  495. package/dist/shared/useKbd.d.ts +78 -0
  496. package/dist/shared/useKbd.js +42 -0
  497. package/dist/shared/useKbd.js.map +1 -0
  498. package/dist/shared/useLocale.d.ts +7 -0
  499. package/dist/shared/useLocale.js +12 -0
  500. package/dist/shared/useLocale.js.map +1 -0
  501. package/dist/shared/useNonce.d.ts +2 -0
  502. package/dist/shared/useSize.d.ts +5 -0
  503. package/dist/shared/useSize.js +44 -0
  504. package/dist/shared/useSize.js.map +1 -0
  505. package/dist/shared/useStateMachine.d.ts +25 -0
  506. package/dist/shared/useStateMachine.js +19 -0
  507. package/dist/shared/useStateMachine.js.map +1 -0
  508. package/dist/shared/withDefault.d.ts +22 -0
  509. package/package.json +72 -0
  510. package/src/components/Calendar/CalendarCell.vue +39 -0
  511. package/src/components/Calendar/CalendarCellTrigger.vue +206 -0
  512. package/src/components/Calendar/CalendarGrid.vue +35 -0
  513. package/src/components/Calendar/CalendarGridBody.vue +19 -0
  514. package/src/components/Calendar/CalendarGridHead.vue +19 -0
  515. package/src/components/Calendar/CalendarGridRow.vue +17 -0
  516. package/src/components/Calendar/CalendarHeadCell.vue +17 -0
  517. package/src/components/Calendar/CalendarHeader.vue +17 -0
  518. package/src/components/Calendar/CalendarHeading.vue +32 -0
  519. package/src/components/Calendar/CalendarMonthHeading.vue +65 -0
  520. package/src/components/Calendar/CalendarMonthYearOverlay.vue +48 -0
  521. package/src/components/Calendar/CalendarNext.vue +51 -0
  522. package/src/components/Calendar/CalendarOverlayItem.vue +30 -0
  523. package/src/components/Calendar/CalendarPrev.vue +51 -0
  524. package/src/components/Calendar/CalendarRoot.vue +394 -0
  525. package/src/components/Calendar/CalendarYearHeading.vue +63 -0
  526. package/src/components/Calendar/index.ts +63 -0
  527. package/src/components/Calendar/useCalendar.ts +453 -0
  528. package/src/components/ConfigProvider/ConfigProvider.vue +73 -0
  529. package/src/components/ConfigProvider/index.ts +5 -0
  530. package/src/components/DateField/DateFieldInput.vue +72 -0
  531. package/src/components/DateField/DateFieldRoot.vue +359 -0
  532. package/src/components/DateField/index.ts +10 -0
  533. package/src/components/DatePicker/DatePickerAnchor.vue +16 -0
  534. package/src/components/DatePicker/DatePickerArrow.vue +16 -0
  535. package/src/components/DatePicker/DatePickerCalendar.vue +62 -0
  536. package/src/components/DatePicker/DatePickerCell.vue +16 -0
  537. package/src/components/DatePicker/DatePickerCellTrigger.vue +18 -0
  538. package/src/components/DatePicker/DatePickerClose.vue +16 -0
  539. package/src/components/DatePicker/DatePickerContent.vue +50 -0
  540. package/src/components/DatePicker/DatePickerField.vue +53 -0
  541. package/src/components/DatePicker/DatePickerGrid.vue +16 -0
  542. package/src/components/DatePicker/DatePickerGridBody.vue +16 -0
  543. package/src/components/DatePicker/DatePickerGridHead.vue +16 -0
  544. package/src/components/DatePicker/DatePickerGridRow.vue +16 -0
  545. package/src/components/DatePicker/DatePickerHeadCell.vue +16 -0
  546. package/src/components/DatePicker/DatePickerHeader.vue +16 -0
  547. package/src/components/DatePicker/DatePickerHeading.vue +24 -0
  548. package/src/components/DatePicker/DatePickerInput.vue +16 -0
  549. package/src/components/DatePicker/DatePickerMonthHeading.vue +19 -0
  550. package/src/components/DatePicker/DatePickerMonthYearOverlay.vue +13 -0
  551. package/src/components/DatePicker/DatePickerNext.vue +19 -0
  552. package/src/components/DatePicker/DatePickerOverlayItem.vue +16 -0
  553. package/src/components/DatePicker/DatePickerPrev.vue +18 -0
  554. package/src/components/DatePicker/DatePickerRoot.vue +216 -0
  555. package/src/components/DatePicker/DatePickerTrigger.vue +29 -0
  556. package/src/components/DatePicker/DatePickerYearHeading.vue +19 -0
  557. package/src/components/DatePicker/index.ts +92 -0
  558. package/src/components/DismissableLayer/DismissableLayer.vue +175 -0
  559. package/src/components/DismissableLayer/DismissableLayerBranch.vue +28 -0
  560. package/src/components/DismissableLayer/index.ts +7 -0
  561. package/src/components/DismissableLayer/utils.ts +194 -0
  562. package/src/components/FocusScope/FocusScope.vue +220 -0
  563. package/src/components/FocusScope/index.ts +5 -0
  564. package/src/components/FocusScope/stack.ts +49 -0
  565. package/src/components/FocusScope/utils.ts +108 -0
  566. package/src/components/Popover/PopoverAnchor.vue +30 -0
  567. package/src/components/Popover/PopoverArrow.vue +23 -0
  568. package/src/components/Popover/PopoverClose.vue +29 -0
  569. package/src/components/Popover/PopoverContent.vue +41 -0
  570. package/src/components/Popover/PopoverContentImpl.vue +97 -0
  571. package/src/components/Popover/PopoverContentNonModal.vue +74 -0
  572. package/src/components/Popover/PopoverPortal.vue +17 -0
  573. package/src/components/Popover/PopoverRoot.vue +83 -0
  574. package/src/components/Popover/PopoverTrigger.vue +48 -0
  575. package/src/components/Popover/index.ts +31 -0
  576. package/src/components/Popper/PopperAnchor.vue +36 -0
  577. package/src/components/Popper/PopperArrow.vue +81 -0
  578. package/src/components/Popper/PopperContent.vue +399 -0
  579. package/src/components/Popper/PopperRoot.vue +36 -0
  580. package/src/components/Popper/index.ts +15 -0
  581. package/src/components/Popper/utils.ts +63 -0
  582. package/src/components/Presence/Presence.ts +91 -0
  583. package/src/components/Presence/index.ts +1 -0
  584. package/src/components/Presence/usePresence.ts +175 -0
  585. package/src/components/Primitive/Primitive.ts +66 -0
  586. package/src/components/Primitive/Slot.ts +40 -0
  587. package/src/components/Primitive/index.ts +3 -0
  588. package/src/components/Primitive/usePrimitiveElement.ts +13 -0
  589. package/src/components/Teleport/Teleport.vue +49 -0
  590. package/src/components/Teleport/index.ts +1 -0
  591. package/src/components/VisuallyHidden/VisuallyHidden.vue +47 -0
  592. package/src/components/VisuallyHidden/VisuallyHiddenInput.vue +67 -0
  593. package/src/components/VisuallyHidden/VisuallyHiddenInputBubble.vue +56 -0
  594. package/src/components/VisuallyHidden/index.ts +2 -0
  595. package/src/date/calendar.ts +242 -0
  596. package/src/date/comparators.ts +199 -0
  597. package/src/date/index.ts +3 -0
  598. package/src/date/types.ts +37 -0
  599. package/src/date/utils.ts +18 -0
  600. package/src/index.ts +78 -0
  601. package/src/shared/arrays.ts +66 -0
  602. package/src/shared/component/Arrow.vue +55 -0
  603. package/src/shared/component/BaseSeparator.vue +57 -0
  604. package/src/shared/component/index.ts +2 -0
  605. package/src/shared/constant/countryList.ts +251 -0
  606. package/src/shared/constant/index.ts +1 -0
  607. package/src/shared/createContext.ts +57 -0
  608. package/src/shared/date/comparators.ts +74 -0
  609. package/src/shared/date/index.ts +42 -0
  610. package/src/shared/date/parser.ts +252 -0
  611. package/src/shared/date/parts.ts +32 -0
  612. package/src/shared/date/placeholders.ts +221 -0
  613. package/src/shared/date/segment.ts +50 -0
  614. package/src/shared/date/types.ts +50 -0
  615. package/src/shared/date/useDateField.ts +998 -0
  616. package/src/shared/date/utils.ts +84 -0
  617. package/src/shared/getActiveElement.ts +12 -0
  618. package/src/shared/handleAndDispatchCustomEvent.ts +21 -0
  619. package/src/shared/index.ts +27 -0
  620. package/src/shared/nullish.ts +3 -0
  621. package/src/shared/onFocusOutside.ts +29 -0
  622. package/src/shared/renderSlotFragments.ts +13 -0
  623. package/src/shared/trap-focus.ts +45 -0
  624. package/src/shared/types.ts +64 -0
  625. package/src/shared/useDateFormatter.ts +186 -0
  626. package/src/shared/useDirection.ts +16 -0
  627. package/src/shared/useEmitAsProps.ts +32 -0
  628. package/src/shared/useFocusGuards.ts +46 -0
  629. package/src/shared/useForwardExpose.ts +66 -0
  630. package/src/shared/useForwardProps.ts +43 -0
  631. package/src/shared/useForwardPropsEmits.ts +26 -0
  632. package/src/shared/useId.ts +34 -0
  633. package/src/shared/useIsUsingKeyboard.ts +22 -0
  634. package/src/shared/useKbd.ts +58 -0
  635. package/src/shared/useLocale.ts +15 -0
  636. package/src/shared/useNonce.ts +10 -0
  637. package/src/shared/useSize.ts +64 -0
  638. package/src/shared/useStateMachine.ts +48 -0
  639. package/src/shared/withDefault.ts +61 -0
@@ -0,0 +1,112 @@
1
+ import { isClient } from "../../node_modules/.pnpm/@vueuse_shared@14.1.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/shared/dist/index.js";
2
+ import { ref, watchEffect, toValue, nextTick } from "vue";
3
+ import { handleAndDispatchCustomEvent } from "../../shared/handleAndDispatchCustomEvent.js";
4
+ const POINTER_DOWN_OUTSIDE = "dismissableLayer.pointerDownOutside";
5
+ const FOCUS_OUTSIDE = "dismissableLayer.focusOutside";
6
+ function isLayerExist(layerElement, targetElement) {
7
+ const targetLayer = targetElement.closest("[data-dismissable-layer]");
8
+ const mainLayer = layerElement.dataset.dismissableLayer === "" ? layerElement : layerElement.querySelector("[data-dismissable-layer]");
9
+ const nodeList = Array.from(
10
+ layerElement.ownerDocument.querySelectorAll("[data-dismissable-layer]")
11
+ );
12
+ if (targetLayer && (mainLayer === targetLayer || nodeList.indexOf(mainLayer) < nodeList.indexOf(targetLayer))) {
13
+ return true;
14
+ } else {
15
+ return false;
16
+ }
17
+ }
18
+ function usePointerDownOutside(onPointerDownOutside, element, enabled = true) {
19
+ const ownerDocument = element?.value?.ownerDocument ?? globalThis?.document;
20
+ const isPointerInsideDOMTree = ref(false);
21
+ const handleClickRef = ref(() => {
22
+ });
23
+ watchEffect((cleanupFn) => {
24
+ if (!isClient || !toValue(enabled)) return;
25
+ const handlePointerDown = async (event) => {
26
+ const target = event.target;
27
+ if (!element?.value || !target) return;
28
+ if (isLayerExist(element.value, target)) {
29
+ isPointerInsideDOMTree.value = false;
30
+ return;
31
+ }
32
+ if (event.target && !isPointerInsideDOMTree.value) {
33
+ let handleAndDispatchPointerDownOutsideEvent = function() {
34
+ handleAndDispatchCustomEvent(
35
+ POINTER_DOWN_OUTSIDE,
36
+ onPointerDownOutside,
37
+ eventDetail
38
+ );
39
+ };
40
+ const eventDetail = { originalEvent: event };
41
+ if (event.pointerType === "touch") {
42
+ ownerDocument.removeEventListener("click", handleClickRef.value);
43
+ handleClickRef.value = handleAndDispatchPointerDownOutsideEvent;
44
+ ownerDocument.addEventListener("click", handleClickRef.value, {
45
+ once: true
46
+ });
47
+ } else {
48
+ handleAndDispatchPointerDownOutsideEvent();
49
+ }
50
+ } else {
51
+ ownerDocument.removeEventListener("click", handleClickRef.value);
52
+ }
53
+ isPointerInsideDOMTree.value = false;
54
+ };
55
+ const timerId = window.setTimeout(() => {
56
+ ownerDocument.addEventListener("pointerdown", handlePointerDown);
57
+ }, 0);
58
+ cleanupFn(() => {
59
+ window.clearTimeout(timerId);
60
+ ownerDocument.removeEventListener("pointerdown", handlePointerDown);
61
+ ownerDocument.removeEventListener("click", handleClickRef.value);
62
+ });
63
+ });
64
+ return {
65
+ onPointerDownCapture: () => {
66
+ if (!toValue(enabled)) return;
67
+ isPointerInsideDOMTree.value = true;
68
+ }
69
+ };
70
+ }
71
+ function useFocusOutside(onFocusOutside, element, enabled = true) {
72
+ const ownerDocument = element?.value?.ownerDocument ?? globalThis?.document;
73
+ const isFocusInsideDOMTree = ref(false);
74
+ watchEffect((cleanupFn) => {
75
+ if (!isClient || !toValue(enabled)) return;
76
+ const handleFocus = async (event) => {
77
+ if (!element?.value) return;
78
+ await nextTick();
79
+ await nextTick();
80
+ const target = event.target;
81
+ if (!element.value || !target || isLayerExist(element.value, target))
82
+ return;
83
+ if (event.target && !isFocusInsideDOMTree.value) {
84
+ const eventDetail = { originalEvent: event };
85
+ handleAndDispatchCustomEvent(
86
+ FOCUS_OUTSIDE,
87
+ onFocusOutside,
88
+ eventDetail
89
+ );
90
+ }
91
+ };
92
+ ownerDocument.addEventListener("focusin", handleFocus);
93
+ cleanupFn(() => ownerDocument.removeEventListener("focusin", handleFocus));
94
+ });
95
+ return {
96
+ onFocusCapture: () => {
97
+ if (!toValue(enabled)) return;
98
+ isFocusInsideDOMTree.value = true;
99
+ },
100
+ onBlurCapture: () => {
101
+ if (!toValue(enabled)) return;
102
+ isFocusInsideDOMTree.value = false;
103
+ }
104
+ };
105
+ }
106
+ export {
107
+ FOCUS_OUTSIDE,
108
+ POINTER_DOWN_OUTSIDE,
109
+ useFocusOutside,
110
+ usePointerDownOutside
111
+ };
112
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../../src/components/DismissableLayer/utils.ts"],"sourcesContent":["import type { MaybeRefOrGetter, Ref } from \"vue\";\nimport { isClient } from \"@vueuse/shared\";\nimport { nextTick, ref, toValue, watchEffect } from \"vue\";\nimport { handleAndDispatchCustomEvent } from \"../../shared\";\n\nexport type PointerDownOutsideEvent = CustomEvent<{\n originalEvent: PointerEvent;\n}>;\nexport type FocusOutsideEvent = CustomEvent<{ originalEvent: FocusEvent }>;\n\nexport const DISMISSABLE_LAYER_NAME = \"DismissableLayer\";\nexport const CONTEXT_UPDATE = \"dismissableLayer.update\";\nexport const POINTER_DOWN_OUTSIDE = \"dismissableLayer.pointerDownOutside\";\nexport const FOCUS_OUTSIDE = \"dismissableLayer.focusOutside\";\n\nfunction isLayerExist(layerElement: HTMLElement, targetElement: HTMLElement) {\n const targetLayer = targetElement.closest(\"[data-dismissable-layer]\");\n\n const mainLayer =\n layerElement.dataset.dismissableLayer === \"\"\n ? layerElement\n : (layerElement.querySelector(\"[data-dismissable-layer]\") as HTMLElement);\n\n const nodeList = Array.from(\n layerElement.ownerDocument.querySelectorAll(\"[data-dismissable-layer]\"),\n );\n\n if (\n targetLayer &&\n (mainLayer === targetLayer ||\n nodeList.indexOf(mainLayer) < nodeList.indexOf(targetLayer))\n ) {\n return true;\n } else {\n return false;\n }\n}\n\n/**\n * Listens for `pointerdown` outside a DOM subtree. We use `pointerdown` rather than `pointerup`\n * to mimic layer dismissing behaviour present in OS.\n * Returns props to pass to the node we want to check for outside events.\n */\nexport function usePointerDownOutside(\n onPointerDownOutside?: (event: PointerDownOutsideEvent) => void,\n element?: Ref<HTMLElement | undefined>,\n enabled: MaybeRefOrGetter<boolean> = true,\n) {\n const ownerDocument: Document =\n element?.value?.ownerDocument ?? globalThis?.document;\n\n const isPointerInsideDOMTree = ref(false);\n const handleClickRef = ref(() => {});\n\n watchEffect((cleanupFn) => {\n if (!isClient || !toValue(enabled)) return;\n const handlePointerDown = async (event: PointerEvent) => {\n const target = event.target as HTMLElement | undefined;\n\n if (!element?.value || !target) return;\n\n if (isLayerExist(element.value, target)) {\n isPointerInsideDOMTree.value = false;\n return;\n }\n\n if (event.target && !isPointerInsideDOMTree.value) {\n const eventDetail = { originalEvent: event };\n\n function handleAndDispatchPointerDownOutsideEvent() {\n handleAndDispatchCustomEvent(\n POINTER_DOWN_OUTSIDE,\n onPointerDownOutside,\n eventDetail,\n );\n }\n\n /**\n * On touch devices, we need to wait for a click event because browsers implement\n * a ~350ms delay between the time the user stops touching the display and when the\n * browser executes events. We need to ensure we don't reactivate pointer-events within\n * this timeframe otherwise the browser may execute events that should have been prevented.\n *\n * Additionally, this also lets us deal automatically with cancellations when a click event\n * isn't raised because the page was considered scrolled/drag-scrolled, long-pressed, etc.\n *\n * This is why we also continuously remove the previous listener, because we cannot be\n * certain that it was raised, and therefore cleaned-up.\n */\n if (event.pointerType === \"touch\") {\n ownerDocument.removeEventListener(\"click\", handleClickRef.value);\n handleClickRef.value = handleAndDispatchPointerDownOutsideEvent;\n ownerDocument.addEventListener(\"click\", handleClickRef.value, {\n once: true,\n });\n } else {\n handleAndDispatchPointerDownOutsideEvent();\n }\n } else {\n // We need to remove the event listener in case the outside click has been canceled.\n // See: https://github.com/radix-ui/primitives/issues/2171\n ownerDocument.removeEventListener(\"click\", handleClickRef.value);\n }\n isPointerInsideDOMTree.value = false;\n };\n /**\n * if this hook executes in a component that mounts via a `pointerdown` event, the event\n * would bubble up to the document and trigger a `pointerDownOutside` event. We avoid\n * this by delaying the event listener registration on the document.\n * This is how the DOM works, ie:\n * ```\n * button.addEventListener('pointerdown', () => {\n * console.log('I will log');\n * document.addEventListener('pointerdown', () => {\n * console.log('I will also log');\n * })\n * });\n */\n const timerId = window.setTimeout(() => {\n ownerDocument.addEventListener(\"pointerdown\", handlePointerDown);\n }, 0);\n\n cleanupFn(() => {\n window.clearTimeout(timerId);\n ownerDocument.removeEventListener(\"pointerdown\", handlePointerDown);\n ownerDocument.removeEventListener(\"click\", handleClickRef.value);\n });\n });\n\n return {\n onPointerDownCapture: () => {\n if (!toValue(enabled)) return;\n isPointerInsideDOMTree.value = true;\n },\n };\n}\n\n/**\n * Listens for when focus happens outside a DOM subtree.\n * Returns props to pass to the root (node) of the subtree we want to check.\n */\nexport function useFocusOutside(\n onFocusOutside?: (event: FocusOutsideEvent) => void,\n element?: Ref<HTMLElement | undefined>,\n enabled: MaybeRefOrGetter<boolean> = true,\n) {\n const ownerDocument: Document =\n element?.value?.ownerDocument ?? globalThis?.document;\n\n const isFocusInsideDOMTree = ref(false);\n watchEffect((cleanupFn) => {\n if (!isClient || !toValue(enabled)) return;\n const handleFocus = async (event: FocusEvent) => {\n if (!element?.value) return;\n\n await nextTick();\n await nextTick();\n const target = event.target as HTMLElement | undefined;\n if (!element.value || !target || isLayerExist(element.value, target))\n return;\n\n if (event.target && !isFocusInsideDOMTree.value) {\n const eventDetail = { originalEvent: event };\n handleAndDispatchCustomEvent(\n FOCUS_OUTSIDE,\n onFocusOutside,\n eventDetail,\n );\n }\n };\n\n ownerDocument.addEventListener(\"focusin\", handleFocus);\n\n cleanupFn(() => ownerDocument.removeEventListener(\"focusin\", handleFocus));\n });\n\n return {\n onFocusCapture: () => {\n if (!toValue(enabled)) return;\n\n isFocusInsideDOMTree.value = true;\n },\n onBlurCapture: () => {\n if (!toValue(enabled)) return;\n\n isFocusInsideDOMTree.value = false;\n },\n };\n}\n\nexport function dispatchUpdate() {\n const event = new CustomEvent(CONTEXT_UPDATE);\n document.dispatchEvent(event);\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ import { PrimitiveProps } from '../Primitive';
2
+ export type FocusScopeEmits = {
3
+ /**
4
+ * Event handler called when auto-focusing on mount.
5
+ * Can be prevented.
6
+ */
7
+ mountAutoFocus: [event: Event];
8
+ /**
9
+ * Event handler called when auto-focusing on unmount.
10
+ * Can be prevented.
11
+ */
12
+ unmountAutoFocus: [event: Event];
13
+ };
14
+ export interface FocusScopeProps extends PrimitiveProps {
15
+ /**
16
+ * When `true`, tabbing from last item will focus first tabbable
17
+ * and shift+tab from first item will focus last tababble.
18
+ * @defaultValue false
19
+ */
20
+ loop?: boolean;
21
+ /**
22
+ * When `true`, focus cannot escape the focus scope via keyboard,
23
+ * pointer, or a programmatic focus.
24
+ * @defaultValue false
25
+ */
26
+ trapped?: boolean;
27
+ }
28
+ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<FocusScopeProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
29
+ mountAutoFocus: (event: Event) => any;
30
+ unmountAutoFocus: (event: Event) => any;
31
+ }, string, import('vue').PublicProps, Readonly<FocusScopeProps> & Readonly<{
32
+ onMountAutoFocus?: ((event: Event) => any) | undefined;
33
+ onUnmountAutoFocus?: ((event: Event) => any) | undefined;
34
+ }>, {
35
+ loop: boolean;
36
+ trapped: boolean;
37
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
38
+ currentRef: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('vue').ExtractPropTypes<{
39
+ asChild: {
40
+ type: BooleanConstructor;
41
+ default: boolean;
42
+ };
43
+ as: {
44
+ type: import('vue').PropType<import('../Primitive').AsTag | import('vue').Component>;
45
+ default: string;
46
+ };
47
+ }>> & Readonly<{}>, () => import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
48
+ [key: string]: any;
49
+ }>, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, import('vue').PublicProps, {
50
+ asChild: boolean;
51
+ as: import('../Primitive').AsTag | import('vue').Component;
52
+ }, true, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, any, import('vue').ComponentProvideOptions, {
53
+ P: {};
54
+ B: {};
55
+ D: {};
56
+ C: {};
57
+ M: {};
58
+ Defaults: {};
59
+ }, Readonly<import('vue').ExtractPropTypes<{
60
+ asChild: {
61
+ type: BooleanConstructor;
62
+ default: boolean;
63
+ };
64
+ as: {
65
+ type: import('vue').PropType<import('../Primitive').AsTag | import('vue').Component>;
66
+ default: string;
67
+ };
68
+ }>> & Readonly<{}>, () => import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
69
+ [key: string]: any;
70
+ }>, {}, {}, {}, {
71
+ asChild: boolean;
72
+ as: import('../Primitive').AsTag | import('vue').Component;
73
+ }> | null;
74
+ }, any>, {
75
+ default?(_: {}): any;
76
+ }>;
77
+ export default _default;
78
+ type __VLS_WithTemplateSlots<T, S> = T & {
79
+ new (): {
80
+ $slots: S;
81
+ };
82
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,149 @@
1
+ import { defineComponent, ref, reactive, watchEffect, nextTick, createBlock, openBlock, unref, withCtx, renderSlot } from "vue";
2
+ import { isClient } from "../../node_modules/.pnpm/@vueuse_shared@14.1.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/shared/dist/index.js";
3
+ import { Primitive } from "../Primitive/Primitive.js";
4
+ import "../Primitive/Slot.js";
5
+ import { createFocusScopesStack, removeLinks } from "./stack.js";
6
+ import { AUTOFOCUS_ON_MOUNT, focusFirst, getTabbableCandidates, focus, AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS, getTabbableEdges } from "./utils.js";
7
+ import { getActiveElement } from "../../shared/getActiveElement.js";
8
+ import { useForwardExpose } from "../../shared/useForwardExpose.js";
9
+ const _sfc_main = /* @__PURE__ */ defineComponent({
10
+ __name: "FocusScope",
11
+ props: {
12
+ loop: { type: Boolean, default: false },
13
+ trapped: { type: Boolean, default: false },
14
+ asChild: { type: Boolean },
15
+ as: {}
16
+ },
17
+ emits: ["mountAutoFocus", "unmountAutoFocus"],
18
+ setup(__props, { emit: __emit }) {
19
+ const props = __props;
20
+ const emits = __emit;
21
+ const { currentRef, currentElement } = useForwardExpose();
22
+ const lastFocusedElementRef = ref(null);
23
+ const focusScopesStack = createFocusScopesStack();
24
+ const focusScope = reactive({
25
+ paused: false,
26
+ pause() {
27
+ this.paused = true;
28
+ },
29
+ resume() {
30
+ this.paused = false;
31
+ }
32
+ });
33
+ watchEffect((cleanupFn) => {
34
+ if (!isClient) return;
35
+ const container = currentElement.value;
36
+ if (!props.trapped) return;
37
+ function handleFocusIn(event) {
38
+ if (focusScope.paused || !container) return;
39
+ const target = event.target;
40
+ if (container.contains(target)) lastFocusedElementRef.value = target;
41
+ else focus(lastFocusedElementRef.value, { select: true });
42
+ }
43
+ function handleFocusOut(event) {
44
+ if (focusScope.paused || !container) return;
45
+ const relatedTarget = event.relatedTarget;
46
+ if (relatedTarget === null) return;
47
+ if (!container.contains(relatedTarget))
48
+ focus(lastFocusedElementRef.value, { select: true });
49
+ }
50
+ function handleMutations(mutations) {
51
+ const isLastFocusedElementExist = container.contains(
52
+ lastFocusedElementRef.value
53
+ );
54
+ if (!isLastFocusedElementExist) focus(container);
55
+ }
56
+ document.addEventListener("focusin", handleFocusIn);
57
+ document.addEventListener("focusout", handleFocusOut);
58
+ const mutationObserver = new MutationObserver(handleMutations);
59
+ if (container)
60
+ mutationObserver.observe(container, { childList: true, subtree: true });
61
+ cleanupFn(() => {
62
+ document.removeEventListener("focusin", handleFocusIn);
63
+ document.removeEventListener("focusout", handleFocusOut);
64
+ mutationObserver.disconnect();
65
+ });
66
+ });
67
+ watchEffect(async (cleanupFn) => {
68
+ const container = currentElement.value;
69
+ await nextTick();
70
+ if (!container) return;
71
+ focusScopesStack.add(focusScope);
72
+ const previouslyFocusedElement = getActiveElement();
73
+ const hasFocusedCandidate = container.contains(previouslyFocusedElement);
74
+ if (!hasFocusedCandidate) {
75
+ const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);
76
+ container.addEventListener(
77
+ AUTOFOCUS_ON_MOUNT,
78
+ (ev) => emits("mountAutoFocus", ev)
79
+ );
80
+ container.dispatchEvent(mountEvent);
81
+ if (!mountEvent.defaultPrevented) {
82
+ focusFirst(removeLinks(getTabbableCandidates(container)), {
83
+ select: true
84
+ });
85
+ if (getActiveElement() === previouslyFocusedElement) focus(container);
86
+ }
87
+ }
88
+ cleanupFn(() => {
89
+ container.removeEventListener(
90
+ AUTOFOCUS_ON_MOUNT,
91
+ (ev) => emits("mountAutoFocus", ev)
92
+ );
93
+ const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS);
94
+ const unmountEventHandler = (ev) => {
95
+ emits("unmountAutoFocus", ev);
96
+ };
97
+ container.addEventListener(AUTOFOCUS_ON_UNMOUNT, unmountEventHandler);
98
+ container.dispatchEvent(unmountEvent);
99
+ setTimeout(() => {
100
+ if (!unmountEvent.defaultPrevented)
101
+ focus(previouslyFocusedElement ?? document.body, { select: true });
102
+ container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, unmountEventHandler);
103
+ focusScopesStack.remove(focusScope);
104
+ }, 0);
105
+ });
106
+ });
107
+ function handleKeyDown(event) {
108
+ if (!props.loop && !props.trapped) return;
109
+ if (focusScope.paused) return;
110
+ const isTabKey = event.key === "Tab" && !event.altKey && !event.ctrlKey && !event.metaKey;
111
+ const focusedElement = getActiveElement();
112
+ if (isTabKey && focusedElement) {
113
+ const container = event.currentTarget;
114
+ const [first, last] = getTabbableEdges(container);
115
+ const hasTabbableElementsInside = first && last;
116
+ if (!hasTabbableElementsInside) {
117
+ if (focusedElement === container) event.preventDefault();
118
+ } else {
119
+ if (!event.shiftKey && focusedElement === last) {
120
+ event.preventDefault();
121
+ if (props.loop) focus(first, { select: true });
122
+ } else if (event.shiftKey && focusedElement === first) {
123
+ event.preventDefault();
124
+ if (props.loop) focus(last, { select: true });
125
+ }
126
+ }
127
+ }
128
+ }
129
+ return (_ctx, _cache) => {
130
+ return openBlock(), createBlock(unref(Primitive), {
131
+ ref_key: "currentRef",
132
+ ref: currentRef,
133
+ tabindex: "-1",
134
+ "as-child": __props.asChild,
135
+ as: __props.as,
136
+ onKeydown: handleKeyDown
137
+ }, {
138
+ default: withCtx(() => [
139
+ renderSlot(_ctx.$slots, "default")
140
+ ]),
141
+ _: 3
142
+ }, 8, ["as-child", "as"]);
143
+ };
144
+ }
145
+ });
146
+ export {
147
+ _sfc_main as default
148
+ };
149
+ //# sourceMappingURL=FocusScope.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FocusScope.vue.js","sources":["../../../src/components/FocusScope/FocusScope.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from \"../Primitive\";\nimport { getActiveElement, useForwardExpose } from \"../../shared\";\n\nexport type FocusScopeEmits = {\n /**\n * Event handler called when auto-focusing on mount.\n * Can be prevented.\n */\n mountAutoFocus: [event: Event];\n\n /**\n * Event handler called when auto-focusing on unmount.\n * Can be prevented.\n */\n unmountAutoFocus: [event: Event];\n};\n\nexport interface FocusScopeProps extends PrimitiveProps {\n /**\n * When `true`, tabbing from last item will focus first tabbable\n * and shift+tab from first item will focus last tababble.\n * @defaultValue false\n */\n loop?: boolean;\n\n /**\n * When `true`, focus cannot escape the focus scope via keyboard,\n * pointer, or a programmatic focus.\n * @defaultValue false\n */\n trapped?: boolean;\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { isClient } from \"@vueuse/shared\";\nimport { nextTick, reactive, ref, watchEffect } from \"vue\";\nimport { Primitive } from \"../Primitive\";\nimport { createFocusScopesStack, removeLinks } from \"./stack\";\nimport {\n AUTOFOCUS_ON_MOUNT,\n AUTOFOCUS_ON_UNMOUNT,\n EVENT_OPTIONS,\n focus,\n focusFirst,\n getTabbableCandidates,\n getTabbableEdges,\n} from \"./utils\";\n\nconst props = withDefaults(defineProps<FocusScopeProps>(), {\n loop: false,\n trapped: false,\n});\nconst emits = defineEmits<FocusScopeEmits>();\n\nconst { currentRef, currentElement } = useForwardExpose();\nconst lastFocusedElementRef = ref<HTMLElement | null>(null);\nconst focusScopesStack = createFocusScopesStack();\n\nconst focusScope = reactive({\n paused: false,\n pause() {\n this.paused = true;\n },\n resume() {\n this.paused = false;\n },\n});\n\nwatchEffect((cleanupFn) => {\n if (!isClient) return;\n const container = currentElement.value;\n if (!props.trapped) return;\n\n function handleFocusIn(event: FocusEvent) {\n if (focusScope.paused || !container) return;\n const target = event.target as HTMLElement | null;\n if (container.contains(target)) lastFocusedElementRef.value = target;\n else focus(lastFocusedElementRef.value, { select: true });\n }\n\n function handleFocusOut(event: FocusEvent) {\n if (focusScope.paused || !container) return;\n const relatedTarget = event.relatedTarget as HTMLElement | null;\n\n // A `focusout` event with a `null` `relatedTarget` will happen in at least two cases:\n //\n // 1. When the user switches app/tabs/windows/the browser itself loses focus.\n // 2. In Google Chrome, when the focused element is removed from the DOM.\n //\n // We let the browser do its thing here because:\n //\n // 1. The browser already keeps a memory of what's focused for when the page gets refocused.\n // 2. In Google Chrome, if we try to focus the deleted focused element (as per below), it\n // throws the CPU to 100%, so we avoid doing anything for this reason here too.\n if (relatedTarget === null) return;\n\n // If the focus has moved to an actual legitimate element (`relatedTarget !== null`)\n // that is outside the container, we move focus to the last valid focused element inside.\n if (!container.contains(relatedTarget))\n focus(lastFocusedElementRef.value, { select: true });\n }\n\n // When the focused element gets removed from the DOM, browsers move focus\n // back to the document.body. In this case, we move focus to the container\n // to keep focus trapped correctly.\n // -- related: https://github.com/unovue/reka-ui/issues/518\n // Reka UI tentative solution:\n // instead of leaning on document.activeElement, we use lastFocusedElementRef.value to check\n // if the element still exist inside the container,\n // if not then we focus to the container\n function handleMutations(mutations: MutationRecord[]) {\n const isLastFocusedElementExist = container.contains(\n lastFocusedElementRef.value,\n );\n if (!isLastFocusedElementExist) focus(container);\n }\n\n document.addEventListener(\"focusin\", handleFocusIn);\n document.addEventListener(\"focusout\", handleFocusOut);\n const mutationObserver = new MutationObserver(handleMutations);\n if (container)\n mutationObserver.observe(container, { childList: true, subtree: true });\n\n cleanupFn(() => {\n document.removeEventListener(\"focusin\", handleFocusIn);\n document.removeEventListener(\"focusout\", handleFocusOut);\n mutationObserver.disconnect();\n });\n});\n\nwatchEffect(async (cleanupFn) => {\n const container = currentElement.value;\n\n await nextTick();\n if (!container) return;\n focusScopesStack.add(focusScope);\n const previouslyFocusedElement = getActiveElement() as HTMLElement | null;\n const hasFocusedCandidate = container.contains(previouslyFocusedElement);\n\n if (!hasFocusedCandidate) {\n const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_MOUNT, (ev: Event) =>\n emits(\"mountAutoFocus\", ev),\n );\n container.dispatchEvent(mountEvent);\n\n if (!mountEvent.defaultPrevented) {\n focusFirst(removeLinks(getTabbableCandidates(container)), {\n select: true,\n });\n if (getActiveElement() === previouslyFocusedElement) focus(container);\n }\n }\n\n cleanupFn(() => {\n container.removeEventListener(AUTOFOCUS_ON_MOUNT, (ev: Event) =>\n emits(\"mountAutoFocus\", ev),\n );\n\n const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS);\n const unmountEventHandler = (ev: Event) => {\n emits(\"unmountAutoFocus\", ev);\n };\n container.addEventListener(AUTOFOCUS_ON_UNMOUNT, unmountEventHandler);\n container.dispatchEvent(unmountEvent);\n\n setTimeout(() => {\n if (!unmountEvent.defaultPrevented)\n focus(previouslyFocusedElement ?? document.body, { select: true });\n\n // we need to remove the listener after we `dispatchEvent`\n container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, unmountEventHandler);\n\n focusScopesStack.remove(focusScope);\n }, 0);\n });\n});\n\nfunction handleKeyDown(event: KeyboardEvent) {\n if (!props.loop && !props.trapped) return;\n if (focusScope.paused) return;\n\n const isTabKey =\n event.key === \"Tab\" && !event.altKey && !event.ctrlKey && !event.metaKey;\n const focusedElement = getActiveElement() as HTMLElement | null;\n\n if (isTabKey && focusedElement) {\n const container = event.currentTarget as HTMLElement;\n const [first, last] = getTabbableEdges(container);\n const hasTabbableElementsInside = first && last;\n\n // we can only wrap focus if we have tabbable edges\n if (!hasTabbableElementsInside) {\n if (focusedElement === container) event.preventDefault();\n } else {\n if (!event.shiftKey && focusedElement === last) {\n event.preventDefault();\n if (props.loop) focus(first, { select: true });\n } else if (event.shiftKey && focusedElement === first) {\n event.preventDefault();\n if (props.loop) focus(last, { select: true });\n }\n }\n }\n}\n</script>\n\n<template>\n <Primitive\n ref=\"currentRef\"\n tabindex=\"-1\"\n :as-child=\"asChild\"\n :as=\"as\"\n @keydown=\"handleKeyDown\"\n >\n <slot />\n </Primitive>\n</template>\n"],"names":["_createBlock","_unref","_renderSlot"],"mappings":";;;;;;;;;;;;;;;;;;AAkDA,UAAM,QAAQ;AAId,UAAM,QAAQ;AAEd,UAAM,EAAE,YAAY,eAAA,IAAmB,iBAAA;AACvC,UAAM,wBAAwB,IAAwB,IAAI;AAC1D,UAAM,mBAAmB,uBAAA;AAEzB,UAAM,aAAa,SAAS;AAAA,MAC1B,QAAQ;AAAA,MACR,QAAQ;AACN,aAAK,SAAS;AAAA,MAChB;AAAA,MACA,SAAS;AACP,aAAK,SAAS;AAAA,MAChB;AAAA,IAAA,CACD;AAED,gBAAY,CAAC,cAAc;AACzB,UAAI,CAAC,SAAU;AACf,YAAM,YAAY,eAAe;AACjC,UAAI,CAAC,MAAM,QAAS;AAEpB,eAAS,cAAc,OAAmB;AACxC,YAAI,WAAW,UAAU,CAAC,UAAW;AACrC,cAAM,SAAS,MAAM;AACrB,YAAI,UAAU,SAAS,MAAM,yBAAyB,QAAQ;AAAA,mBACnD,sBAAsB,OAAO,EAAE,QAAQ,MAAM;AAAA,MAC1D;AAEA,eAAS,eAAe,OAAmB;AACzC,YAAI,WAAW,UAAU,CAAC,UAAW;AACrC,cAAM,gBAAgB,MAAM;AAY5B,YAAI,kBAAkB,KAAM;AAI5B,YAAI,CAAC,UAAU,SAAS,aAAa;AACnC,gBAAM,sBAAsB,OAAO,EAAE,QAAQ,MAAM;AAAA,MACvD;AAUA,eAAS,gBAAgB,WAA6B;AACpD,cAAM,4BAA4B,UAAU;AAAA,UAC1C,sBAAsB;AAAA,QAAA;AAExB,YAAI,CAAC,0BAA2B,OAAM,SAAS;AAAA,MACjD;AAEA,eAAS,iBAAiB,WAAW,aAAa;AAClD,eAAS,iBAAiB,YAAY,cAAc;AACpD,YAAM,mBAAmB,IAAI,iBAAiB,eAAe;AAC7D,UAAI;AACF,yBAAiB,QAAQ,WAAW,EAAE,WAAW,MAAM,SAAS,MAAM;AAExE,gBAAU,MAAM;AACd,iBAAS,oBAAoB,WAAW,aAAa;AACrD,iBAAS,oBAAoB,YAAY,cAAc;AACvD,yBAAiB,WAAA;AAAA,MACnB,CAAC;AAAA,IACH,CAAC;AAED,gBAAY,OAAO,cAAc;AAC/B,YAAM,YAAY,eAAe;AAEjC,YAAM,SAAA;AACN,UAAI,CAAC,UAAW;AAChB,uBAAiB,IAAI,UAAU;AAC/B,YAAM,2BAA2B,iBAAA;AACjC,YAAM,sBAAsB,UAAU,SAAS,wBAAwB;AAEvE,UAAI,CAAC,qBAAqB;AACxB,cAAM,aAAa,IAAI,YAAY,oBAAoB,aAAa;AACpE,kBAAU;AAAA,UAAiB;AAAA,UAAoB,CAAC,OAC9C,MAAM,kBAAkB,EAAE;AAAA,QAAA;AAE5B,kBAAU,cAAc,UAAU;AAElC,YAAI,CAAC,WAAW,kBAAkB;AAChC,qBAAW,YAAY,sBAAsB,SAAS,CAAC,GAAG;AAAA,YACxD,QAAQ;AAAA,UAAA,CACT;AACD,cAAI,iBAAA,MAAuB,yBAA0B,OAAM,SAAS;AAAA,QACtE;AAAA,MACF;AAEA,gBAAU,MAAM;AACd,kBAAU;AAAA,UAAoB;AAAA,UAAoB,CAAC,OACjD,MAAM,kBAAkB,EAAE;AAAA,QAAA;AAG5B,cAAM,eAAe,IAAI,YAAY,sBAAsB,aAAa;AACxE,cAAM,sBAAsB,CAAC,OAAc;AACzC,gBAAM,oBAAoB,EAAE;AAAA,QAC9B;AACA,kBAAU,iBAAiB,sBAAsB,mBAAmB;AACpE,kBAAU,cAAc,YAAY;AAEpC,mBAAW,MAAM;AACf,cAAI,CAAC,aAAa;AAChB,kBAAM,4BAA4B,SAAS,MAAM,EAAE,QAAQ,MAAM;AAGnE,oBAAU,oBAAoB,sBAAsB,mBAAmB;AAEvE,2BAAiB,OAAO,UAAU;AAAA,QACpC,GAAG,CAAC;AAAA,MACN,CAAC;AAAA,IACH,CAAC;AAED,aAAS,cAAc,OAAsB;AAC3C,UAAI,CAAC,MAAM,QAAQ,CAAC,MAAM,QAAS;AACnC,UAAI,WAAW,OAAQ;AAEvB,YAAM,WACJ,MAAM,QAAQ,SAAS,CAAC,MAAM,UAAU,CAAC,MAAM,WAAW,CAAC,MAAM;AACnE,YAAM,iBAAiB,iBAAA;AAEvB,UAAI,YAAY,gBAAgB;AAC9B,cAAM,YAAY,MAAM;AACxB,cAAM,CAAC,OAAO,IAAI,IAAI,iBAAiB,SAAS;AAChD,cAAM,4BAA4B,SAAS;AAG3C,YAAI,CAAC,2BAA2B;AAC9B,cAAI,mBAAmB,UAAW,OAAM,eAAA;AAAA,QAC1C,OAAO;AACL,cAAI,CAAC,MAAM,YAAY,mBAAmB,MAAM;AAC9C,kBAAM,eAAA;AACN,gBAAI,MAAM,KAAM,OAAM,OAAO,EAAE,QAAQ,MAAM;AAAA,UAC/C,WAAW,MAAM,YAAY,mBAAmB,OAAO;AACrD,kBAAM,eAAA;AACN,gBAAI,MAAM,KAAM,OAAM,MAAM,EAAE,QAAQ,MAAM;AAAA,UAC9C;AAAA,QACF;AAAA,MACF;AAAA,IACF;;0BAIEA,YAQYC,MAAA,SAAA,GAAA;AAAA,iBAPN;AAAA,QAAJ,KAAI;AAAA,QACJ,UAAS;AAAA,QACR,YAAU,QAAA;AAAA,QACV,IAAI,QAAA;AAAA,QACJ,WAAS;AAAA,MAAA;yBAEV,MAAQ;AAAA,UAARC,WAAQ,KAAA,QAAA,SAAA;AAAA,QAAA;;;;;;"}
@@ -0,0 +1,5 @@
1
+ import _sfc_main from "./FocusScope.vue.js";
2
+ export {
3
+ _sfc_main as default
4
+ };
5
+ //# sourceMappingURL=FocusScope.vue2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FocusScope.vue2.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1 @@
1
+ export { default as FocusScope, type FocusScopeEmits, type FocusScopeProps, } from './FocusScope';
@@ -0,0 +1,12 @@
1
+ interface FocusScopeAPI {
2
+ paused: boolean;
3
+ pause: () => void;
4
+ resume: () => void;
5
+ }
6
+ export declare function createFocusScopesStack(): {
7
+ add(focusScope: FocusScopeAPI): void;
8
+ remove(focusScope: FocusScopeAPI): void;
9
+ };
10
+ export declare function arrayRemove<T>(array: T[], item: T): T[];
11
+ export declare function removeLinks(items: HTMLElement[]): HTMLElement[];
12
+ export {};
@@ -0,0 +1,38 @@
1
+ import { ref } from "vue";
2
+ import { createGlobalState } from "../../node_modules/.pnpm/@vueuse_shared@14.1.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/shared/dist/index.js";
3
+ const useFocusStackState = createGlobalState(() => {
4
+ const stack = ref([]);
5
+ return stack;
6
+ });
7
+ function createFocusScopesStack() {
8
+ const stack = useFocusStackState();
9
+ return {
10
+ add(focusScope) {
11
+ const activeFocusScope = stack.value[0];
12
+ if (focusScope !== activeFocusScope)
13
+ activeFocusScope?.pause();
14
+ stack.value = arrayRemove(stack.value, focusScope);
15
+ stack.value.unshift(focusScope);
16
+ },
17
+ remove(focusScope) {
18
+ stack.value = arrayRemove(stack.value, focusScope);
19
+ stack.value[0]?.resume();
20
+ }
21
+ };
22
+ }
23
+ function arrayRemove(array, item) {
24
+ const updatedArray = [...array];
25
+ const index = updatedArray.indexOf(item);
26
+ if (index !== -1)
27
+ updatedArray.splice(index, 1);
28
+ return updatedArray;
29
+ }
30
+ function removeLinks(items) {
31
+ return items.filter((item) => item.tagName !== "A");
32
+ }
33
+ export {
34
+ arrayRemove,
35
+ createFocusScopesStack,
36
+ removeLinks
37
+ };
38
+ //# sourceMappingURL=stack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stack.js","sources":["../../../src/components/FocusScope/stack.ts"],"sourcesContent":["import { createGlobalState } from '@vueuse/core'\nimport { ref } from 'vue'\n\ninterface FocusScopeAPI {\n paused: boolean\n pause: () => void\n resume: () => void\n}\n\nconst useFocusStackState = createGlobalState(() => {\n const stack = ref<FocusScopeAPI[]>([])\n return stack\n})\n\nexport function createFocusScopesStack() {\n /** A stack of focus scopes, with the active one at the top */\n const stack = useFocusStackState()\n\n return {\n add(focusScope: FocusScopeAPI) {\n // pause the currently active focus scope (at the top of the stack)\n const activeFocusScope = stack.value[0]\n if (focusScope !== activeFocusScope)\n activeFocusScope?.pause()\n\n // remove in case it already exists (because we'll re-add it at the top of the stack)\n stack.value = arrayRemove(stack.value, focusScope)\n stack.value.unshift(focusScope)\n },\n\n remove(focusScope: FocusScopeAPI) {\n stack.value = arrayRemove(stack.value, focusScope)\n stack.value[0]?.resume()\n },\n }\n}\n\nexport function arrayRemove<T>(array: T[], item: T) {\n const updatedArray = [...array]\n const index = updatedArray.indexOf(item)\n if (index !== -1)\n updatedArray.splice(index, 1)\n\n return updatedArray\n}\n\nexport function removeLinks(items: HTMLElement[]) {\n return items.filter(item => item.tagName !== 'A')\n}\n"],"names":[],"mappings":";;AASA,MAAM,qBAAqB,kBAAkB,MAAM;AACjD,QAAM,QAAQ,IAAqB,EAAE;AACrC,SAAO;AACT,CAAC;AAEM,SAAS,yBAAyB;AAEvC,QAAM,QAAQ,mBAAA;AAEd,SAAO;AAAA,IACL,IAAI,YAA2B;AAE7B,YAAM,mBAAmB,MAAM,MAAM,CAAC;AACtC,UAAI,eAAe;AACjB,0BAAkB,MAAA;AAGpB,YAAM,QAAQ,YAAY,MAAM,OAAO,UAAU;AACjD,YAAM,MAAM,QAAQ,UAAU;AAAA,IAChC;AAAA,IAEA,OAAO,YAA2B;AAChC,YAAM,QAAQ,YAAY,MAAM,OAAO,UAAU;AACjD,YAAM,MAAM,CAAC,GAAG,OAAA;AAAA,IAClB;AAAA,EAAA;AAEJ;AAEO,SAAS,YAAe,OAAY,MAAS;AAClD,QAAM,eAAe,CAAC,GAAG,KAAK;AAC9B,QAAM,QAAQ,aAAa,QAAQ,IAAI;AACvC,MAAI,UAAU;AACZ,iBAAa,OAAO,OAAO,CAAC;AAE9B,SAAO;AACT;AAEO,SAAS,YAAY,OAAsB;AAChD,SAAO,MAAM,OAAO,CAAA,SAAQ,KAAK,YAAY,GAAG;AAClD;"}
@@ -0,0 +1,46 @@
1
+ export declare const AUTOFOCUS_ON_MOUNT = "focusScope.autoFocusOnMount";
2
+ export declare const AUTOFOCUS_ON_UNMOUNT = "focusScope.autoFocusOnUnmount";
3
+ export declare const EVENT_OPTIONS: {
4
+ bubbles: boolean;
5
+ cancelable: boolean;
6
+ };
7
+ type FocusableTarget = HTMLElement | {
8
+ focus: () => void;
9
+ };
10
+ /**
11
+ * Attempts focusing the first element in a list of candidates.
12
+ * Stops when focus has actually moved.
13
+ */
14
+ export declare function focusFirst(candidates: HTMLElement[], { select }?: {
15
+ select?: boolean | undefined;
16
+ }): true | undefined;
17
+ /**
18
+ * Returns the first and last tabbable elements inside a container.
19
+ */
20
+ export declare function getTabbableEdges(container: HTMLElement): readonly [HTMLElement | undefined, HTMLElement | undefined];
21
+ /**
22
+ * Returns a list of potential tabbable candidates.
23
+ *
24
+ * NOTE: This is only a close approximation. For example it doesn't take into account cases like when
25
+ * elements are not visible. This cannot be worked out easily by just reading a property, but rather
26
+ * necessitate runtime knowledge (computed styles, etc). We deal with these cases separately.
27
+ *
28
+ * See: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker
29
+ * Credit: https://github.com/discord/focus-layers/blob/master/src/util/wrapFocus.tsx#L1
30
+ */
31
+ export declare function getTabbableCandidates(container: HTMLElement): HTMLElement[];
32
+ /**
33
+ * Returns the first visible element in a list.
34
+ * NOTE: Only checks visibility up to the `container`.
35
+ */
36
+ export declare function findVisible(elements: HTMLElement[], container: HTMLElement): HTMLElement | undefined;
37
+ export declare function isHidden(node: HTMLElement, { upTo }: {
38
+ upTo?: HTMLElement;
39
+ }): boolean;
40
+ export declare function isSelectableInput(element: any): element is FocusableTarget & {
41
+ select: () => void;
42
+ };
43
+ export declare function focus(element?: FocusableTarget | null, { select }?: {
44
+ select?: boolean | undefined;
45
+ }): void;
46
+ export {};
@@ -0,0 +1,70 @@
1
+ import "vue";
2
+ import { getActiveElement } from "../../shared/getActiveElement.js";
3
+ const AUTOFOCUS_ON_MOUNT = "focusScope.autoFocusOnMount";
4
+ const AUTOFOCUS_ON_UNMOUNT = "focusScope.autoFocusOnUnmount";
5
+ const EVENT_OPTIONS = { bubbles: false, cancelable: true };
6
+ function focusFirst(candidates, { select = false } = {}) {
7
+ const previouslyFocusedElement = getActiveElement();
8
+ for (const candidate of candidates) {
9
+ focus(candidate, { select });
10
+ if (getActiveElement() !== previouslyFocusedElement) return true;
11
+ }
12
+ }
13
+ function getTabbableEdges(container) {
14
+ const candidates = getTabbableCandidates(container);
15
+ const first = findVisible(candidates, container);
16
+ const last = findVisible(candidates.reverse(), container);
17
+ return [first, last];
18
+ }
19
+ function getTabbableCandidates(container) {
20
+ const nodes = [];
21
+ const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {
22
+ acceptNode: (node) => {
23
+ const isHiddenInput = node.tagName === "INPUT" && node.type === "hidden";
24
+ if (node.disabled || node.hidden || isHiddenInput)
25
+ return NodeFilter.FILTER_SKIP;
26
+ return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
27
+ }
28
+ });
29
+ while (walker.nextNode()) nodes.push(walker.currentNode);
30
+ return nodes;
31
+ }
32
+ function findVisible(elements, container) {
33
+ for (const element of elements) {
34
+ if (!isHidden(element, { upTo: container })) return element;
35
+ }
36
+ }
37
+ function isHidden(node, { upTo }) {
38
+ if (getComputedStyle(node).visibility === "hidden") return true;
39
+ while (node) {
40
+ if (upTo !== void 0 && node === upTo) return false;
41
+ if (getComputedStyle(node).display === "none") return true;
42
+ node = node.parentElement;
43
+ }
44
+ return false;
45
+ }
46
+ function isSelectableInput(element) {
47
+ return element instanceof HTMLInputElement && "select" in element;
48
+ }
49
+ function focus(element, { select = false } = {}) {
50
+ if (element && element.focus) {
51
+ const previouslyFocusedElement = getActiveElement();
52
+ element.focus({ preventScroll: true });
53
+ if (element !== previouslyFocusedElement && isSelectableInput(element) && select) {
54
+ element.select();
55
+ }
56
+ }
57
+ }
58
+ export {
59
+ AUTOFOCUS_ON_MOUNT,
60
+ AUTOFOCUS_ON_UNMOUNT,
61
+ EVENT_OPTIONS,
62
+ findVisible,
63
+ focus,
64
+ focusFirst,
65
+ getTabbableCandidates,
66
+ getTabbableEdges,
67
+ isHidden,
68
+ isSelectableInput
69
+ };
70
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../../src/components/FocusScope/utils.ts"],"sourcesContent":["import { getActiveElement } from \"../../shared\";\n\nexport const AUTOFOCUS_ON_MOUNT = \"focusScope.autoFocusOnMount\";\nexport const AUTOFOCUS_ON_UNMOUNT = \"focusScope.autoFocusOnUnmount\";\nexport const EVENT_OPTIONS = { bubbles: false, cancelable: true };\n\ntype FocusableTarget = HTMLElement | { focus: () => void };\n\n/**\n * Attempts focusing the first element in a list of candidates.\n * Stops when focus has actually moved.\n */\nexport function focusFirst(candidates: HTMLElement[], { select = false } = {}) {\n const previouslyFocusedElement = getActiveElement();\n for (const candidate of candidates) {\n focus(candidate, { select });\n if (getActiveElement() !== previouslyFocusedElement) return true;\n }\n}\n\n/**\n * Returns the first and last tabbable elements inside a container.\n */\nexport function getTabbableEdges(container: HTMLElement) {\n const candidates = getTabbableCandidates(container);\n const first = findVisible(candidates, container);\n const last = findVisible(candidates.reverse(), container);\n return [first, last] as const;\n}\n\n/**\n * Returns a list of potential tabbable candidates.\n *\n * NOTE: This is only a close approximation. For example it doesn't take into account cases like when\n * elements are not visible. This cannot be worked out easily by just reading a property, but rather\n * necessitate runtime knowledge (computed styles, etc). We deal with these cases separately.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker\n * Credit: https://github.com/discord/focus-layers/blob/master/src/util/wrapFocus.tsx#L1\n */\nexport function getTabbableCandidates(container: HTMLElement) {\n const nodes: HTMLElement[] = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node: any) => {\n const isHiddenInput = node.tagName === \"INPUT\" && node.type === \"hidden\";\n if (node.disabled || node.hidden || isHiddenInput)\n return NodeFilter.FILTER_SKIP;\n // `.tabIndex` is not the same as the `tabindex` attribute. It works on the\n // runtime's understanding of tabbability, so this automatically accounts\n // for any kind of element that could be tabbed to.\n return node.tabIndex >= 0\n ? NodeFilter.FILTER_ACCEPT\n : NodeFilter.FILTER_SKIP;\n },\n });\n while (walker.nextNode()) nodes.push(walker.currentNode as HTMLElement);\n // we do not take into account the order of nodes with positive `tabIndex` as it\n // hinders accessibility to have tab order different from visual order.\n return nodes;\n}\n\n/**\n * Returns the first visible element in a list.\n * NOTE: Only checks visibility up to the `container`.\n */\nexport function findVisible(elements: HTMLElement[], container: HTMLElement) {\n for (const element of elements) {\n // we stop checking if it's hidden at the `container` level (excluding)\n if (!isHidden(element, { upTo: container })) return element;\n }\n}\n\nexport function isHidden(node: HTMLElement, { upTo }: { upTo?: HTMLElement }) {\n if (getComputedStyle(node).visibility === \"hidden\") return true;\n while (node) {\n // we stop at `upTo` (excluding it)\n if (upTo !== undefined && node === upTo) return false;\n if (getComputedStyle(node).display === \"none\") return true;\n node = node.parentElement as HTMLElement;\n }\n return false;\n}\n\nexport function isSelectableInput(\n element: any,\n): element is FocusableTarget & { select: () => void } {\n return element instanceof HTMLInputElement && \"select\" in element;\n}\n\nexport function focus(\n element?: FocusableTarget | null,\n { select = false } = {},\n) {\n // only focus if that element is focusable\n if (element && element.focus) {\n const previouslyFocusedElement = getActiveElement();\n // NOTE: we prevent scrolling on focus, to minimize jarring transitions for users\n element.focus({ preventScroll: true });\n // only select if its not the same element, it supports selection and we need to select\n if (\n element !== previouslyFocusedElement &&\n isSelectableInput(element) &&\n select\n ) {\n element.select();\n }\n }\n}\n"],"names":[],"mappings":";;AAEO,MAAM,qBAAqB;AAC3B,MAAM,uBAAuB;AAC7B,MAAM,gBAAgB,EAAE,SAAS,OAAO,YAAY,KAAA;AAQpD,SAAS,WAAW,YAA2B,EAAE,SAAS,MAAA,IAAU,CAAA,GAAI;AAC7E,QAAM,2BAA2B,iBAAA;AACjC,aAAW,aAAa,YAAY;AAClC,UAAM,WAAW,EAAE,QAAQ;AAC3B,QAAI,iBAAA,MAAuB,yBAA0B,QAAO;AAAA,EAC9D;AACF;AAKO,SAAS,iBAAiB,WAAwB;AACvD,QAAM,aAAa,sBAAsB,SAAS;AAClD,QAAM,QAAQ,YAAY,YAAY,SAAS;AAC/C,QAAM,OAAO,YAAY,WAAW,QAAA,GAAW,SAAS;AACxD,SAAO,CAAC,OAAO,IAAI;AACrB;AAYO,SAAS,sBAAsB,WAAwB;AAC5D,QAAM,QAAuB,CAAA;AAC7B,QAAM,SAAS,SAAS,iBAAiB,WAAW,WAAW,cAAc;AAAA,IAC3E,YAAY,CAAC,SAAc;AACzB,YAAM,gBAAgB,KAAK,YAAY,WAAW,KAAK,SAAS;AAChE,UAAI,KAAK,YAAY,KAAK,UAAU;AAClC,eAAO,WAAW;AAIpB,aAAO,KAAK,YAAY,IACpB,WAAW,gBACX,WAAW;AAAA,IACjB;AAAA,EAAA,CACD;AACD,SAAO,OAAO,SAAA,EAAY,OAAM,KAAK,OAAO,WAA0B;AAGtE,SAAO;AACT;AAMO,SAAS,YAAY,UAAyB,WAAwB;AAC3E,aAAW,WAAW,UAAU;AAE9B,QAAI,CAAC,SAAS,SAAS,EAAE,MAAM,UAAA,CAAW,EAAG,QAAO;AAAA,EACtD;AACF;AAEO,SAAS,SAAS,MAAmB,EAAE,QAAgC;AAC5E,MAAI,iBAAiB,IAAI,EAAE,eAAe,SAAU,QAAO;AAC3D,SAAO,MAAM;AAEX,QAAI,SAAS,UAAa,SAAS,KAAM,QAAO;AAChD,QAAI,iBAAiB,IAAI,EAAE,YAAY,OAAQ,QAAO;AACtD,WAAO,KAAK;AAAA,EACd;AACA,SAAO;AACT;AAEO,SAAS,kBACd,SACqD;AACrD,SAAO,mBAAmB,oBAAoB,YAAY;AAC5D;AAEO,SAAS,MACd,SACA,EAAE,SAAS,MAAA,IAAU,CAAA,GACrB;AAEA,MAAI,WAAW,QAAQ,OAAO;AAC5B,UAAM,2BAA2B,iBAAA;AAEjC,YAAQ,MAAM,EAAE,eAAe,KAAA,CAAM;AAErC,QACE,YAAY,4BACZ,kBAAkB,OAAO,KACzB,QACA;AACA,cAAQ,OAAA;AAAA,IACV;AAAA,EACF;AACF;"}
@@ -0,0 +1,11 @@
1
+ import { PopperAnchorProps } from '../Popper';
2
+ export type PopoverAnchorProps = PopperAnchorProps;
3
+ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<PopperAnchorProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<PopperAnchorProps> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>, {
4
+ default?(_: {}): any;
5
+ }>;
6
+ export default _default;
7
+ type __VLS_WithTemplateSlots<T, S> = T & {
8
+ new (): {
9
+ $slots: S;
10
+ };
11
+ };
@@ -0,0 +1,37 @@
1
+ import { defineComponent, onBeforeMount, onUnmounted, createBlock, openBlock, unref, normalizeProps, guardReactiveProps, withCtx, renderSlot } from "vue";
2
+ import _sfc_main$1 from "../Popper/PopperAnchor.vue.js";
3
+ import { useForwardExpose } from "../../shared/useForwardExpose.js";
4
+ import "../Primitive/Primitive.js";
5
+ import "../Primitive/Slot.js";
6
+ import { injectPopoverRootContext } from "./PopoverRoot.vue.js";
7
+ const _sfc_main = /* @__PURE__ */ defineComponent({
8
+ __name: "PopoverAnchor",
9
+ props: {
10
+ reference: {},
11
+ asChild: { type: Boolean },
12
+ as: {}
13
+ },
14
+ setup(__props) {
15
+ const props = __props;
16
+ useForwardExpose();
17
+ const rootContext = injectPopoverRootContext();
18
+ onBeforeMount(() => {
19
+ rootContext.hasCustomAnchor.value = true;
20
+ });
21
+ onUnmounted(() => {
22
+ rootContext.hasCustomAnchor.value = false;
23
+ });
24
+ return (_ctx, _cache) => {
25
+ return openBlock(), createBlock(unref(_sfc_main$1), normalizeProps(guardReactiveProps(props)), {
26
+ default: withCtx(() => [
27
+ renderSlot(_ctx.$slots, "default")
28
+ ]),
29
+ _: 3
30
+ }, 16);
31
+ };
32
+ }
33
+ });
34
+ export {
35
+ _sfc_main as default
36
+ };
37
+ //# sourceMappingURL=PopoverAnchor.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PopoverAnchor.vue.js","sources":["../../../src/components/Popover/PopoverAnchor.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PopperAnchorProps } from \"../Popper\";\nimport { useForwardExpose } from \"../../shared\";\n\nexport type PopoverAnchorProps = PopperAnchorProps;\n</script>\n\n<script setup lang=\"ts\">\nimport { onBeforeMount, onUnmounted } from \"vue\";\nimport { PopperAnchor } from \"../Popper\";\nimport { injectPopoverRootContext } from \"./PopoverRoot.vue\";\n\nconst props = defineProps<PopoverAnchorProps>();\n\nuseForwardExpose();\nconst rootContext = injectPopoverRootContext();\n\nonBeforeMount(() => {\n rootContext.hasCustomAnchor.value = true;\n});\nonUnmounted(() => {\n rootContext.hasCustomAnchor.value = false;\n});\n</script>\n\n<template>\n <PopperAnchor v-bind=\"props\">\n <slot />\n </PopperAnchor>\n</template>\n"],"names":["_openBlock","_createBlock","_unref","_renderSlot"],"mappings":";;;;;;;;;;;;;;AAYA,UAAM,QAAQ;AAEd,qBAAA;AACA,UAAM,cAAc,yBAAA;AAEpB,kBAAc,MAAM;AAClB,kBAAY,gBAAgB,QAAQ;AAAA,IACtC,CAAC;AACD,gBAAY,MAAM;AAChB,kBAAY,gBAAgB,QAAQ;AAAA,IACtC,CAAC;;AAIC,aAAAA,UAAA,GAAAC,YAEeC,sDAFO,KAAK,CAAA,GAAA;AAAA,yBACzB,MAAQ;AAAA,UAARC,WAAQ,KAAA,QAAA,SAAA;AAAA,QAAA;;;;;;"}