@vueland/ui 0.0.1 → 0.0.3

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 (383) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +147 -0
  3. package/dist/_virtual/_plugin-vue_export-helper.js +9 -0
  4. package/dist/components/CApp/CApp.js +4 -5
  5. package/dist/components/CAutocomplete/CAutocomplete.js +200 -91
  6. package/dist/components/CBtn/CBtn.js +26 -27
  7. package/dist/components/CCheckbox/CCheckbox.js +40 -58
  8. package/dist/components/CCheckbox/CheckboxElement.js +96 -0
  9. package/dist/components/CCheckbox/index2.js +5 -0
  10. package/dist/components/CChip/CChip.js +13 -0
  11. package/dist/components/CDateInput/CDateInput.js +245 -0
  12. package/dist/components/CDateInput/index.js +5 -0
  13. package/dist/components/CDatePicker/CDatePicker.js +324 -0
  14. package/dist/components/CDatePicker/CDatePickerDates.js +300 -0
  15. package/dist/components/CDatePicker/CDatePickerHeader.js +62 -0
  16. package/dist/components/CDatePicker/CDatePickerMonths.js +114 -0
  17. package/dist/components/CDatePicker/CDatePickerYears.js +143 -0
  18. package/dist/components/CDatePicker/helpers.js +17 -0
  19. package/dist/components/CDatePicker/index.js +14 -0
  20. package/dist/components/CDatePicker/index2.js +5 -0
  21. package/dist/components/CDatePicker/index3.js +5 -0
  22. package/dist/components/CDatePicker/index4.js +5 -0
  23. package/dist/components/CDatePicker/index5.js +5 -0
  24. package/dist/components/CDatePicker/index6.js +5 -0
  25. package/dist/components/CDatePicker/locales/en.json.js +44 -0
  26. package/dist/components/CDatePicker/locales/index.js +9 -0
  27. package/dist/components/CDatePicker/locales/ru.json.js +44 -0
  28. package/dist/components/CDatePicker/utils.js +20 -0
  29. package/dist/components/CDialog/CDialog.js +2 -4
  30. package/dist/components/CField/CField.js +160 -28
  31. package/dist/components/CForm/CForm.js +38 -22
  32. package/dist/components/CGrid/CCol.js +1 -3
  33. package/dist/components/CGrid/CRow.js +5 -7
  34. package/dist/components/CIcon/CIcon.js +3 -3
  35. package/dist/components/CInput/CInput.js +119 -109
  36. package/dist/components/CList/CList.js +106 -34
  37. package/dist/components/CList/CListItem.js +44 -14
  38. package/dist/components/CMenu/CMenu.js +54 -55
  39. package/dist/components/COverlay/COverlay.js +6 -5
  40. package/dist/components/CRadio/CRadio.js +11 -5
  41. package/dist/components/CRadio/CRadioGroup.js +10 -0
  42. package/dist/components/CSelect/CSelect.js +180 -71
  43. package/dist/components/CSelectControl/CSelectControl.js +14 -2
  44. package/dist/components/CTextField/CTextField.js +79 -52
  45. package/dist/components/CTextField/index.js +2 -2
  46. package/dist/components/CTextField/index2.js +5 -0
  47. package/dist/components/CToolbar/CToolbar.js +1 -3
  48. package/dist/components/CTooltip/CTooltip.js +13 -11
  49. package/dist/components/CTooltip/index.js +2 -2
  50. package/dist/components/CTooltip/index2.js +5 -0
  51. package/dist/components/global-components.d.ts +44 -0
  52. package/dist/components/index.d.ts +841 -504
  53. package/dist/components/index.js +11 -7
  54. package/dist/composables/index.d.ts +384 -235
  55. package/dist/composables/index.js +22 -14
  56. package/dist/composables/use-activator.js +15 -25
  57. package/dist/composables/{use-app-scroll.js → use-application-scroll.js} +4 -8
  58. package/dist/composables/use-aria-activator.js +15 -0
  59. package/dist/composables/use-aria-dialog.js +16 -0
  60. package/dist/composables/use-aria-field.js +18 -0
  61. package/dist/composables/use-aria-listbox.js +14 -0
  62. package/dist/composables/use-aria-toggle.js +15 -0
  63. package/dist/composables/use-auto-position.js +206 -118
  64. package/dist/composables/use-autocomplete.js +21 -19
  65. package/dist/composables/use-breakpoints.js +8 -0
  66. package/dist/composables/use-button-presets.js +3 -7
  67. package/dist/composables/use-delay-actions.js +8 -2
  68. package/dist/composables/use-display.js +26 -18
  69. package/dist/composables/use-field-presets.js +82 -0
  70. package/dist/composables/use-icon.js +106 -34
  71. package/dist/composables/use-id.js +9 -0
  72. package/dist/composables/use-input-presets.js +88 -19
  73. package/dist/composables/use-keyboard.js +52 -0
  74. package/dist/composables/use-list.js +8 -0
  75. package/dist/composables/use-menu.js +8 -0
  76. package/dist/composables/use-normalized-items.js +22 -0
  77. package/dist/composables/use-overlay-stack.js +4 -1
  78. package/dist/composables/use-presets.js +2 -2
  79. package/dist/composables/use-select-control.js +8 -0
  80. package/dist/composables/use-selected-chips.js +40 -0
  81. package/dist/composables/use-validate.js +32 -24
  82. package/dist/constants/aria.js +32 -0
  83. package/dist/constants/attrs.js +21 -0
  84. package/dist/constants/icons.js +55 -8
  85. package/dist/constants/index.d.ts +187 -53
  86. package/dist/constants/index.js +3 -1
  87. package/dist/constants/provide-keys.js +2 -1
  88. package/dist/css/lib.css +1 -0
  89. package/dist/css/utils/_borders.css +1 -0
  90. package/dist/css/utils/_borders.js +3 -0
  91. package/dist/css/utils/_display.css +1 -1
  92. package/dist/css/utils/_flex.css +1 -1
  93. package/dist/css/utils/_grid.css +1 -0
  94. package/dist/css/utils/_grid.js +3 -0
  95. package/dist/css/utils/_helpers.css +1 -1
  96. package/dist/css/utils/_positions.css +1 -1
  97. package/dist/css/utils/_radius.css +1 -1
  98. package/dist/css/utils/_sizing.css +1 -1
  99. package/dist/css/utils/_spaces.css +1 -1
  100. package/dist/css/utils/_text.css +1 -1
  101. package/dist/css/utils/_transitions.css +1 -1
  102. package/dist/css/utils/_typography.css +1 -1
  103. package/dist/enums/IconName.js +13 -0
  104. package/dist/enums/index.d.ts +15 -2
  105. package/dist/helpers/preset.js +11 -0
  106. package/dist/helpers/theme.js +41 -0
  107. package/dist/library.js +31 -9
  108. package/dist/resolvers/font-awesome.js +30 -0
  109. package/dist/resolvers/index.d.ts +48 -0
  110. package/dist/resolvers/index.js +1 -0
  111. package/dist/scss/lib.scss +26 -0
  112. package/dist/scss/maps/colors-map.scss +342 -0
  113. package/dist/scss/maps/elevations-map.scss +88 -0
  114. package/dist/scss/maps/flexes-map.scss +24 -0
  115. package/dist/scss/maps/grids.scss +23 -0
  116. package/dist/scss/modules/_global-vars.scss +88 -0
  117. package/dist/scss/ress.scss +281 -0
  118. package/dist/scss/styles.scss +20 -0
  119. package/dist/scss/utils/_borders.scss +28 -0
  120. package/dist/scss/utils/_colors.scss +86 -0
  121. package/dist/scss/utils/_cursor.scss +140 -0
  122. package/dist/scss/utils/_display.scss +32 -0
  123. package/dist/scss/utils/_elevations.scss +15 -0
  124. package/dist/scss/utils/_flex.scss +137 -0
  125. package/dist/scss/utils/_grid.scss +173 -0
  126. package/dist/scss/utils/_helpers.scss +47 -0
  127. package/dist/scss/utils/_opacity.scss +13 -0
  128. package/dist/scss/utils/_overflow.scss +51 -0
  129. package/dist/scss/utils/_positions.scss +42 -0
  130. package/dist/scss/utils/_radius.scss +41 -0
  131. package/dist/scss/utils/_sizing.scss +40 -0
  132. package/dist/scss/utils/_spaces.scss +164 -0
  133. package/dist/scss/utils/_text.scss +76 -0
  134. package/dist/scss/utils/_transitions.scss +98 -0
  135. package/dist/scss/utils/_typography.scss +81 -0
  136. package/dist/styles.css +1 -1
  137. package/dist/temp-types/src/components/CApp/CApp.vue.d.ts +2 -4
  138. package/dist/temp-types/src/components/CApp/CApp.vue.d.ts.map +1 -1
  139. package/dist/temp-types/src/components/CApp/types.d.ts +4 -0
  140. package/dist/temp-types/src/components/CApp/types.d.ts.map +1 -1
  141. package/dist/temp-types/src/components/CAutocomplete/CAutocomplete.vue.d.ts +7 -2
  142. package/dist/temp-types/src/components/CAutocomplete/CAutocomplete.vue.d.ts.map +1 -1
  143. package/dist/temp-types/src/components/CAutocomplete/types.d.ts +16 -6
  144. package/dist/temp-types/src/components/CAutocomplete/types.d.ts.map +1 -1
  145. package/dist/temp-types/src/components/CBtn/CBtn.vue.d.ts +5 -1
  146. package/dist/temp-types/src/components/CBtn/CBtn.vue.d.ts.map +1 -1
  147. package/dist/temp-types/src/components/CBtn/index.d.ts +1 -0
  148. package/dist/temp-types/src/components/CBtn/index.d.ts.map +1 -1
  149. package/dist/temp-types/src/components/CBtn/types.d.ts +1 -0
  150. package/dist/temp-types/src/components/CBtn/types.d.ts.map +1 -1
  151. package/dist/temp-types/src/components/CCheckbox/CCheckbox.vue.d.ts +2 -6
  152. package/dist/temp-types/src/components/CCheckbox/CCheckbox.vue.d.ts.map +1 -1
  153. package/dist/temp-types/src/components/CCheckbox/CheckboxElement.vue.d.ts +32 -0
  154. package/dist/temp-types/src/components/CCheckbox/CheckboxElement.vue.d.ts.map +1 -0
  155. package/dist/temp-types/src/components/CCheckbox/types.d.ts +7 -4
  156. package/dist/temp-types/src/components/CCheckbox/types.d.ts.map +1 -1
  157. package/dist/temp-types/src/components/CChip/CChip.vue.d.ts +13 -0
  158. package/dist/temp-types/src/components/CChip/CChip.vue.d.ts.map +1 -0
  159. package/dist/temp-types/src/components/CChip/index.d.ts +2 -0
  160. package/dist/temp-types/src/components/CChip/index.d.ts.map +1 -0
  161. package/dist/temp-types/src/components/CDateInput/CDateInput.vue.d.ts +61 -0
  162. package/dist/temp-types/src/components/CDateInput/CDateInput.vue.d.ts.map +1 -0
  163. package/dist/temp-types/src/components/CDateInput/index.d.ts +3 -0
  164. package/dist/temp-types/src/components/CDateInput/index.d.ts.map +1 -0
  165. package/dist/temp-types/src/components/CDatePicker/CDatePicker.vue.d.ts +82 -0
  166. package/dist/temp-types/src/components/CDatePicker/CDatePicker.vue.d.ts.map +1 -0
  167. package/dist/temp-types/src/components/CDatePicker/CDatePickerDates.vue.d.ts +60 -0
  168. package/dist/temp-types/src/components/CDatePicker/CDatePickerDates.vue.d.ts.map +1 -0
  169. package/dist/temp-types/src/components/CDatePicker/CDatePickerHeader.vue.d.ts +27 -0
  170. package/dist/temp-types/src/components/CDatePicker/CDatePickerHeader.vue.d.ts.map +1 -0
  171. package/dist/temp-types/src/components/CDatePicker/CDatePickerMonths.vue.d.ts +40 -0
  172. package/dist/temp-types/src/components/CDatePicker/CDatePickerMonths.vue.d.ts.map +1 -0
  173. package/dist/temp-types/src/components/CDatePicker/CDatePickerYears.vue.d.ts +34 -0
  174. package/dist/temp-types/src/components/CDatePicker/CDatePickerYears.vue.d.ts.map +1 -0
  175. package/dist/temp-types/src/components/CDatePicker/helpers.d.ts +4 -0
  176. package/dist/temp-types/src/components/CDatePicker/helpers.d.ts.map +1 -0
  177. package/dist/temp-types/src/components/CDatePicker/index.d.ts +6 -0
  178. package/dist/temp-types/src/components/CDatePicker/index.d.ts.map +1 -0
  179. package/dist/temp-types/src/components/CDatePicker/locales/index.d.ts +7 -0
  180. package/dist/temp-types/src/components/CDatePicker/locales/index.d.ts.map +1 -0
  181. package/dist/temp-types/src/components/CDatePicker/types.d.ts +22 -0
  182. package/dist/temp-types/src/components/CDatePicker/types.d.ts.map +1 -0
  183. package/dist/temp-types/src/components/CDatePicker/utils.d.ts +8 -0
  184. package/dist/temp-types/src/components/CDatePicker/utils.d.ts.map +1 -0
  185. package/dist/temp-types/src/components/CDialog/CDialog.vue.d.ts +1 -1
  186. package/dist/temp-types/src/components/CDialog/CDialog.vue.d.ts.map +1 -1
  187. package/dist/temp-types/src/components/CDialog/CDialogsStack.vue.d.ts.map +1 -1
  188. package/dist/temp-types/src/components/CDialog/types.d.ts.map +1 -1
  189. package/dist/temp-types/src/components/CField/CField.vue.d.ts +26 -10
  190. package/dist/temp-types/src/components/CField/CField.vue.d.ts.map +1 -1
  191. package/dist/temp-types/src/components/CField/index.d.ts +1 -0
  192. package/dist/temp-types/src/components/CField/index.d.ts.map +1 -1
  193. package/dist/temp-types/src/components/CField/types.d.ts +22 -0
  194. package/dist/temp-types/src/components/CField/types.d.ts.map +1 -0
  195. package/dist/temp-types/src/components/CForm/CForm.vue.d.ts +10 -8
  196. package/dist/temp-types/src/components/CForm/CForm.vue.d.ts.map +1 -1
  197. package/dist/temp-types/src/components/CForm/types.d.ts +13 -3
  198. package/dist/temp-types/src/components/CForm/types.d.ts.map +1 -1
  199. package/dist/temp-types/src/components/CGrid/CCol.d.ts.map +1 -1
  200. package/dist/temp-types/src/components/CGrid/CRow.d.ts +1 -1
  201. package/dist/temp-types/src/components/CGrid/CRow.d.ts.map +1 -1
  202. package/dist/temp-types/src/components/CGrid/index.d.ts +1 -1
  203. package/dist/temp-types/src/components/CIcon/CIcon.vue.d.ts.map +1 -1
  204. package/dist/temp-types/src/components/CIcon/types.d.ts +1 -2
  205. package/dist/temp-types/src/components/CIcon/types.d.ts.map +1 -1
  206. package/dist/temp-types/src/components/CInput/CInput.vue.d.ts +23 -7
  207. package/dist/temp-types/src/components/CInput/CInput.vue.d.ts.map +1 -1
  208. package/dist/temp-types/src/components/CInput/types.d.ts +42 -28
  209. package/dist/temp-types/src/components/CInput/types.d.ts.map +1 -1
  210. package/dist/temp-types/src/components/CLabel/CLabel.d.ts.map +1 -1
  211. package/dist/temp-types/src/components/CList/CList.vue.d.ts +7 -1
  212. package/dist/temp-types/src/components/CList/CList.vue.d.ts.map +1 -1
  213. package/dist/temp-types/src/components/CList/CListItem.vue.d.ts.map +1 -1
  214. package/dist/temp-types/src/components/CList/types.d.ts +18 -1
  215. package/dist/temp-types/src/components/CList/types.d.ts.map +1 -1
  216. package/dist/temp-types/src/components/CMenu/CMenu.vue.d.ts +6 -6
  217. package/dist/temp-types/src/components/CMenu/CMenu.vue.d.ts.map +1 -1
  218. package/dist/temp-types/src/components/CMenu/types.d.ts +2 -2
  219. package/dist/temp-types/src/components/CMenu/types.d.ts.map +1 -1
  220. package/dist/temp-types/src/components/COverlay/COverlay.vue.d.ts.map +1 -1
  221. package/dist/temp-types/src/components/CRadio/CRadio.vue.d.ts.map +1 -1
  222. package/dist/temp-types/src/components/CRadio/CRadioGroup.vue.d.ts +13 -0
  223. package/dist/temp-types/src/components/CRadio/CRadioGroup.vue.d.ts.map +1 -0
  224. package/dist/temp-types/src/components/CRadio/index.d.ts +1 -0
  225. package/dist/temp-types/src/components/CRadio/index.d.ts.map +1 -1
  226. package/dist/temp-types/src/components/CScrim/index.d.ts.map +1 -1
  227. package/dist/temp-types/src/components/CSelect/CSelect.vue.d.ts +7 -2
  228. package/dist/temp-types/src/components/CSelect/CSelect.vue.d.ts.map +1 -1
  229. package/dist/temp-types/src/components/CSelect/types.d.ts +16 -6
  230. package/dist/temp-types/src/components/CSelect/types.d.ts.map +1 -1
  231. package/dist/temp-types/src/components/CSelectControl/CSelectControl.vue.d.ts +5 -1
  232. package/dist/temp-types/src/components/CSelectControl/CSelectControl.vue.d.ts.map +1 -1
  233. package/dist/temp-types/src/components/CTextField/CTextField.vue.d.ts +19 -17
  234. package/dist/temp-types/src/components/CTextField/CTextField.vue.d.ts.map +1 -1
  235. package/dist/temp-types/src/components/CTextField/index.d.ts +10 -1
  236. package/dist/temp-types/src/components/CTextField/index.d.ts.map +1 -1
  237. package/dist/temp-types/src/components/CTextField/types.d.ts +16 -0
  238. package/dist/temp-types/src/components/CTextField/types.d.ts.map +1 -0
  239. package/dist/temp-types/src/components/CToolbar/CToolbar.vue.d.ts.map +1 -1
  240. package/dist/temp-types/src/components/CTooltip/CTooltip.vue.d.ts +3 -1
  241. package/dist/temp-types/src/components/CTooltip/CTooltip.vue.d.ts.map +1 -1
  242. package/dist/temp-types/src/components/CTooltip/index.d.ts +7 -1
  243. package/dist/temp-types/src/components/CTooltip/index.d.ts.map +1 -1
  244. package/dist/temp-types/src/components/index.d.ts +17 -15
  245. package/dist/temp-types/src/components/index.d.ts.map +1 -1
  246. package/dist/temp-types/src/composables/index.d.ts +22 -14
  247. package/dist/temp-types/src/composables/index.d.ts.map +1 -1
  248. package/dist/temp-types/src/composables/use-activator.d.ts +4 -2
  249. package/dist/temp-types/src/composables/use-activator.d.ts.map +1 -1
  250. package/dist/temp-types/src/composables/{use-app-scroll.d.ts → use-application-scroll.d.ts} +2 -2
  251. package/dist/temp-types/src/composables/use-application-scroll.d.ts.map +1 -0
  252. package/dist/temp-types/src/composables/use-application.d.ts.map +1 -1
  253. package/dist/temp-types/src/composables/use-aria-activator.d.ts +8 -0
  254. package/dist/temp-types/src/composables/use-aria-activator.d.ts.map +1 -0
  255. package/dist/temp-types/src/composables/use-aria-dialog.d.ts +9 -0
  256. package/dist/temp-types/src/composables/use-aria-dialog.d.ts.map +1 -0
  257. package/dist/temp-types/src/composables/use-aria-field.d.ts +13 -0
  258. package/dist/temp-types/src/composables/use-aria-field.d.ts.map +1 -0
  259. package/dist/temp-types/src/composables/use-aria-listbox.d.ts +8 -0
  260. package/dist/temp-types/src/composables/use-aria-listbox.d.ts.map +1 -0
  261. package/dist/temp-types/src/composables/use-aria-toggle.d.ts +11 -0
  262. package/dist/temp-types/src/composables/use-aria-toggle.d.ts.map +1 -0
  263. package/dist/temp-types/src/composables/use-auto-position.d.ts +12 -9
  264. package/dist/temp-types/src/composables/use-auto-position.d.ts.map +1 -1
  265. package/dist/temp-types/src/composables/use-autocomplete.d.ts +9 -4
  266. package/dist/temp-types/src/composables/use-autocomplete.d.ts.map +1 -1
  267. package/dist/temp-types/src/composables/use-breakpoints.d.ts +1 -0
  268. package/dist/temp-types/src/composables/use-breakpoints.d.ts.map +1 -1
  269. package/dist/temp-types/src/composables/use-button-presets.d.ts +2 -2
  270. package/dist/temp-types/src/composables/use-button-presets.d.ts.map +1 -1
  271. package/dist/temp-types/src/composables/use-core.d.ts.map +1 -1
  272. package/dist/temp-types/src/composables/use-delay-actions.d.ts.map +1 -1
  273. package/dist/temp-types/src/composables/use-dialogs-stack.d.ts +3 -3
  274. package/dist/temp-types/src/composables/use-dialogs-stack.d.ts.map +1 -1
  275. package/dist/temp-types/src/composables/use-display.d.ts +29 -55
  276. package/dist/temp-types/src/composables/use-display.d.ts.map +1 -1
  277. package/dist/temp-types/src/composables/use-effect.d.ts.map +1 -1
  278. package/dist/temp-types/src/composables/use-field-presets.d.ts +12 -0
  279. package/dist/temp-types/src/composables/use-field-presets.d.ts.map +1 -0
  280. package/dist/temp-types/src/composables/use-form.d.ts +1 -1
  281. package/dist/temp-types/src/composables/use-form.d.ts.map +1 -1
  282. package/dist/temp-types/src/composables/use-icon.d.ts +32 -4
  283. package/dist/temp-types/src/composables/use-icon.d.ts.map +1 -1
  284. package/dist/temp-types/src/composables/use-id.d.ts +6 -0
  285. package/dist/temp-types/src/composables/use-id.d.ts.map +1 -0
  286. package/dist/temp-types/src/composables/use-input-presets.d.ts +6 -7
  287. package/dist/temp-types/src/composables/use-input-presets.d.ts.map +1 -1
  288. package/dist/temp-types/src/composables/use-keyboard.d.ts +11 -0
  289. package/dist/temp-types/src/composables/use-keyboard.d.ts.map +1 -0
  290. package/dist/temp-types/src/composables/use-list.d.ts +3 -0
  291. package/dist/temp-types/src/composables/use-list.d.ts.map +1 -0
  292. package/dist/temp-types/src/composables/use-menu.d.ts +2 -0
  293. package/dist/temp-types/src/composables/use-menu.d.ts.map +1 -0
  294. package/dist/temp-types/src/composables/use-normalized-items.d.ts +18 -0
  295. package/dist/temp-types/src/composables/use-normalized-items.d.ts.map +1 -0
  296. package/dist/temp-types/src/composables/use-overlay-stack.d.ts +1 -0
  297. package/dist/temp-types/src/composables/use-overlay-stack.d.ts.map +1 -1
  298. package/dist/temp-types/src/composables/use-presets.d.ts.map +1 -1
  299. package/dist/temp-types/src/composables/use-select-control.d.ts +2 -0
  300. package/dist/temp-types/src/composables/use-select-control.d.ts.map +1 -0
  301. package/dist/temp-types/src/composables/use-selected-chips.d.ts +16 -0
  302. package/dist/temp-types/src/composables/use-selected-chips.d.ts.map +1 -0
  303. package/dist/temp-types/src/composables/use-toggle.d.ts +1 -1
  304. package/dist/temp-types/src/composables/use-toggle.d.ts.map +1 -1
  305. package/dist/temp-types/src/composables/use-validate.d.ts +10 -8
  306. package/dist/temp-types/src/composables/use-validate.d.ts.map +1 -1
  307. package/dist/temp-types/src/constants/aria.d.ts +35 -0
  308. package/dist/temp-types/src/constants/aria.d.ts.map +1 -0
  309. package/dist/temp-types/src/constants/attrs.d.ts +2 -0
  310. package/dist/temp-types/src/constants/attrs.d.ts.map +1 -0
  311. package/dist/temp-types/src/constants/icons.d.ts +91 -18
  312. package/dist/temp-types/src/constants/icons.d.ts.map +1 -1
  313. package/dist/temp-types/src/constants/index.d.ts +3 -1
  314. package/dist/temp-types/src/constants/index.d.ts.map +1 -1
  315. package/dist/temp-types/src/constants/provide-keys.d.ts +7 -6
  316. package/dist/temp-types/src/constants/provide-keys.d.ts.map +1 -1
  317. package/dist/temp-types/src/directives/v-click-outside.d.ts.map +1 -1
  318. package/dist/temp-types/src/enums/IconName.d.ts +15 -2
  319. package/dist/temp-types/src/enums/IconName.d.ts.map +1 -1
  320. package/dist/temp-types/src/helpers/index.d.ts +2 -0
  321. package/dist/temp-types/src/helpers/index.d.ts.map +1 -1
  322. package/dist/temp-types/src/helpers/preset.d.ts +8 -0
  323. package/dist/temp-types/src/helpers/preset.d.ts.map +1 -0
  324. package/dist/temp-types/src/helpers/theme.d.ts +4 -0
  325. package/dist/temp-types/src/helpers/theme.d.ts.map +1 -0
  326. package/dist/temp-types/src/index.d.ts.map +1 -1
  327. package/dist/temp-types/src/library.d.ts +10 -3
  328. package/dist/temp-types/src/library.d.ts.map +1 -1
  329. package/dist/temp-types/src/resolvers/font-awesome.d.ts +18 -0
  330. package/dist/temp-types/src/resolvers/font-awesome.d.ts.map +1 -0
  331. package/dist/temp-types/src/resolvers/index.d.ts +2 -0
  332. package/dist/temp-types/src/resolvers/index.d.ts.map +1 -0
  333. package/dist/temp-types/src/resolvers/material.d.ts +1 -0
  334. package/dist/temp-types/src/resolvers/material.d.ts.map +1 -0
  335. package/dist/temp-types/src/types/icons.d.ts +29 -0
  336. package/dist/temp-types/src/types/icons.d.ts.map +1 -0
  337. package/dist/temp-types/src/types/index.d.ts +4 -2
  338. package/dist/temp-types/src/types/index.d.ts.map +1 -1
  339. package/dist/temp-types/src/types/presets.d.ts +35 -47
  340. package/dist/temp-types/src/types/presets.d.ts.map +1 -1
  341. package/dist/temp-types/src/types/theme.d.ts +32 -0
  342. package/dist/temp-types/src/types/theme.d.ts.map +1 -0
  343. package/dist/temp-types/src/utils/aria.d.ts +36 -0
  344. package/dist/temp-types/src/utils/aria.d.ts.map +1 -0
  345. package/dist/temp-types/src/utils/compile-css-classes.d.ts.map +1 -1
  346. package/dist/temp-types/src/utils/create-simple-functional.d.ts.map +1 -1
  347. package/dist/temp-types/src/utils/index.d.ts +3 -2
  348. package/dist/temp-types/src/utils/index.d.ts.map +1 -1
  349. package/dist/temp-types/src/utils/throttle.d.ts.map +1 -1
  350. package/dist/temp-types/tsconfig.build.tsbuildinfo +1 -1
  351. package/dist/types/index.d.ts +125 -0
  352. package/dist/types.d.ts +137 -72
  353. package/dist/utils/aria.js +95 -0
  354. package/dist/utils/compile-css-classes.js +3 -13
  355. package/dist/utils/create-simple-functional.js +1 -5
  356. package/dist/utils/index.d.ts +48 -10
  357. package/dist/utils/index.js +3 -2
  358. package/package.json +35 -9
  359. package/dist/components/CItems/CItems.js +0 -66
  360. package/dist/composables/use-field-attrs.js +0 -43
  361. package/dist/composables/use-input-state.js +0 -41
  362. package/dist/composables/use-input-value.js +0 -18
  363. package/dist/composables/use-menu-presets.js +0 -17
  364. package/dist/composables/use-position-classes.js +0 -12
  365. package/dist/css/themes/default-theme.css +0 -1
  366. package/dist/temp-types/src/components/CItems/CItems.d.ts +0 -16
  367. package/dist/temp-types/src/components/CItems/CItems.d.ts.map +0 -1
  368. package/dist/temp-types/src/components/CItems/index.d.ts +0 -2
  369. package/dist/temp-types/src/components/CItems/index.d.ts.map +0 -1
  370. package/dist/temp-types/src/composables/use-app-scroll.d.ts.map +0 -1
  371. package/dist/temp-types/src/composables/use-field-attrs.d.ts +0 -10
  372. package/dist/temp-types/src/composables/use-field-attrs.d.ts.map +0 -1
  373. package/dist/temp-types/src/composables/use-input-state.d.ts +0 -17
  374. package/dist/temp-types/src/composables/use-input-state.d.ts.map +0 -1
  375. package/dist/temp-types/src/composables/use-input-value.d.ts +0 -3
  376. package/dist/temp-types/src/composables/use-input-value.d.ts.map +0 -1
  377. package/dist/temp-types/src/composables/use-menu-presets.d.ts +0 -7
  378. package/dist/temp-types/src/composables/use-menu-presets.d.ts.map +0 -1
  379. package/dist/temp-types/src/composables/use-position-classes.d.ts +0 -10
  380. package/dist/temp-types/src/composables/use-position-classes.d.ts.map +0 -1
  381. package/dist/temp-types/src/utils/define-preset.d.ts +0 -2
  382. package/dist/temp-types/src/utils/define-preset.d.ts.map +0 -1
  383. /package/dist/css/{themes/default-theme.js → lib.js} +0 -0
@@ -1,22 +1,30 @@
1
- export { breakpoints, useDisplay } from './use-display.js';
2
- export { InputEvents, useValidate } from './use-validate.js';
3
- export { useInputState } from './use-input-state.js';
4
- export { useFieldAttrs } from './use-field-attrs.js';
5
1
  export { useActivator } from './use-activator.js';
6
- export { useAutocomplete } from './use-autocomplete.js';
7
- export { usePositionClasses } from './use-position-classes.js';
8
- export { useDelayedActions } from './use-delay-actions.js';
9
2
  export { useApplication } from './use-application.js';
3
+ export { useApplicationScroll } from './use-application-scroll.js';
4
+ export { useAriaActivator } from './use-aria-activator.js';
5
+ export { useAriaDialog } from './use-aria-dialog.js';
6
+ export { useAriaField } from './use-aria-field.js';
7
+ export { useAriaListbox } from './use-aria-listbox.js';
8
+ export { useAriaToggle } from './use-aria-toggle.js';
10
9
  export { useAutoPosition } from './use-auto-position.js';
11
- export { useToggle } from './use-toggle.js';
12
- export { useInputValue } from './use-input-value.js';
10
+ export { useAutocomplete } from './use-autocomplete.js';
11
+ export { useBreakpoints } from './use-breakpoints.js';
12
+ export { useButtonPresets } from './use-button-presets.js';
13
13
  export { useCore } from './use-core.js';
14
- export { useOverlayStack } from './use-overlay-stack.js';
14
+ export { useDelayedActions } from './use-delay-actions.js';
15
15
  export { createDialogsStack, useDialogsStack } from './use-dialogs-stack.js';
16
+ export { breakpoints, useDisplay } from './use-display.js';
16
17
  export { useEffect } from './use-effect.js';
17
18
  export { useForm } from './use-form.js';
18
- export { usePresets } from './use-presets.js';
19
+ export { useIcon } from './use-icon.js';
20
+ export { useId } from './use-id.js';
19
21
  export { useInputPresets } from './use-input-presets.js';
20
- export { useMenuPresets } from './use-menu-presets.js';
21
- export { useButtonPresets } from './use-button-presets.js';
22
- export { useAppScroll } from './use-app-scroll.js';
22
+ export { useKeyboard } from './use-keyboard.js';
23
+ export { useMenu } from './use-menu.js';
24
+ export { useNormalizedItems } from './use-normalized-items.js';
25
+ export { clearOverlayStack, useOverlayStack } from './use-overlay-stack.js';
26
+ export { usePresets } from './use-presets.js';
27
+ export { useSelectControl } from './use-select-control.js';
28
+ export { useSelectedChips } from './use-selected-chips.js';
29
+ export { useToggle } from './use-toggle.js';
30
+ export { InputEvents, useValidate } from './use-validate.js';
@@ -1,44 +1,34 @@
1
- import { shallowRef, computed, markRaw, unref } from 'vue';
1
+ import { shallowRef, computed, unref, markRaw } from 'vue';
2
2
 
3
3
  function useActivator(props) {
4
- const activatorEl = shallowRef();
4
+ const activatorEl = shallowRef(props.activator);
5
+ const element = computed(() => getActivator());
5
6
  const activatorProps = { ref: set };
6
7
  function set(val) {
7
8
  activatorEl.value = val;
8
9
  }
9
10
  function getActivator() {
10
- return activatorEl.value;
11
- }
12
- function getActivatorElement() {
13
- var _a, _b;
14
- return (_b = (_a = unref(activatorEl)) == null ? void 0 : _a.$el) != null ? _b : unref(activatorEl);
11
+ var _a, _b, _c;
12
+ return (_c = (_b = props.activator) != null ? _b : (_a = unref(activatorEl)) == null ? void 0 : _a.$el) != null ? _c : unref(activatorEl);
15
13
  }
16
14
  function genListeners({
17
15
  open,
18
16
  close,
19
17
  toggle
20
18
  }) {
21
- return computed(() => markRaw({
22
- ...props.openOnHover ? {
23
- mouseenter: () => open()
24
- } : {},
25
- ...props.closeOnLeave ? {
26
- mouseleave: () => close()
27
- } : {},
28
- ...props.openOnClick ? {
29
- click: () => open()
30
- } : {},
31
- ...props.closeOnClick ? {
32
- click: () => toggle()
33
- } : {},
34
- ...props.openOnFocus ? {
35
- focus: () => open()
36
- } : {}
37
- }));
19
+ return computed(
20
+ () => markRaw({
21
+ ...props.openOnHover ? { mouseenter: () => open() } : {},
22
+ ...props.closeOnLeave ? { mouseleave: () => close() } : {},
23
+ ...props.openOnClick ? { click: () => open() } : {},
24
+ ...props.closeOnClick ? { click: () => toggle() } : {},
25
+ ...props.openOnFocus ? { focus: () => open() } : {}
26
+ })
27
+ );
38
28
  }
39
29
  return {
30
+ element,
40
31
  activatorProps,
41
- getActivatorElement,
42
32
  genListeners,
43
33
  getActivator
44
34
  };
@@ -2,16 +2,12 @@ import { shallowReactive, shallowRef, computed, unref } from 'vue';
2
2
  import { convertToUnit } from '../utils/convert-to-unit.js';
3
3
  import { IN_BROWSER } from '../utils/globals.js';
4
4
 
5
- function useAppScroll() {
6
- const state = shallowReactive({
7
- blockScroll: false
8
- });
5
+ function useApplicationScroll() {
6
+ const state = shallowReactive({ blockScroll: false });
9
7
  const appRef = shallowRef();
10
8
  let savedScrollTop = 0;
11
9
  let savedScrollLeft = 0;
12
- const classes = computed(() => ({
13
- "c-app--block-scroll": state.blockScroll
14
- }));
10
+ const classes = computed(() => ({ "c-app--block-scroll": state.blockScroll }));
15
11
  function getScrollTop() {
16
12
  if (!IN_BROWSER) return 0;
17
13
  return window.scrollY;
@@ -52,4 +48,4 @@ function useAppScroll() {
52
48
  };
53
49
  }
54
50
 
55
- export { useAppScroll };
51
+ export { useApplicationScroll };
@@ -0,0 +1,15 @@
1
+ import { computed } from 'vue';
2
+ import { ariaExpandable } from '../utils/aria.js';
3
+
4
+ function useAriaActivator(state) {
5
+ return computed(() => {
6
+ var _a;
7
+ const s = state();
8
+ return ariaExpandable(s.expanded, {
9
+ haspopup: (_a = s.haspopup) != null ? _a : true,
10
+ controls: s.controls
11
+ });
12
+ });
13
+ }
14
+
15
+ export { useAriaActivator };
@@ -0,0 +1,16 @@
1
+ import { computed } from 'vue';
2
+ import { ariaDescribedBy, ariaLabelledBy, ariaModal } from '../utils/aria.js';
3
+
4
+ function useAriaDialog(state = () => ({})) {
5
+ return computed(() => {
6
+ var _a;
7
+ const s = state();
8
+ return {
9
+ ...ariaModal((_a = s.modal) != null ? _a : true),
10
+ ...ariaLabelledBy(s.labelledBy),
11
+ ...ariaDescribedBy(s.describedBy)
12
+ };
13
+ });
14
+ }
15
+
16
+ export { useAriaDialog };
@@ -0,0 +1,18 @@
1
+ import { computed } from 'vue';
2
+ import { ariaDisabled, ariaReadonly, ariaErrorMessage, ariaInvalid, ariaDescribedBy, ariaLabelledBy } from '../utils/aria.js';
3
+
4
+ function useAriaField(state) {
5
+ return computed(() => {
6
+ const s = state();
7
+ return {
8
+ ...ariaLabelledBy(s.label ? `${s.fieldId}-label` : void 0),
9
+ ...ariaDescribedBy(s.hasDetails ? `${s.fieldId}-details` : void 0),
10
+ ...ariaInvalid(s.hasError),
11
+ ...ariaErrorMessage(s.errorMessage && s.hasDetails ? `${s.fieldId}-details` : void 0),
12
+ ...ariaReadonly(s.readonly),
13
+ ...ariaDisabled(s.disabled)
14
+ };
15
+ });
16
+ }
17
+
18
+ export { useAriaField };
@@ -0,0 +1,14 @@
1
+ import { computed } from 'vue';
2
+ import { ariaActiveDescendant, ariaMultiselectable } from '../utils/aria.js';
3
+
4
+ function useAriaListbox(state) {
5
+ return computed(() => {
6
+ const s = state();
7
+ return {
8
+ ...ariaMultiselectable(s.multiple),
9
+ ...ariaActiveDescendant(s.activeDescendant)
10
+ };
11
+ });
12
+ }
13
+
14
+ export { useAriaListbox };
@@ -0,0 +1,15 @@
1
+ import { computed } from 'vue';
2
+ import { ariaRequired, ariaDisabled, ariaPressed, ariaChecked } from '../utils/aria.js';
3
+
4
+ function useAriaToggle(state) {
5
+ return computed(() => {
6
+ const s = state();
7
+ return {
8
+ ...s.mode === "button" ? ariaPressed(s.checked) : ariaChecked(s.checked),
9
+ ...ariaDisabled(s.disabled),
10
+ ...ariaRequired(s.required)
11
+ };
12
+ });
13
+ }
14
+
15
+ export { useAriaToggle };
@@ -1,12 +1,31 @@
1
1
  import { ref, shallowRef, computed, unref, watch, onBeforeUnmount, nextTick } from 'vue';
2
- import { useApplication } from './use-application.js';
3
2
  import { isDef } from '../helpers/index.js';
3
+ import { useApplication } from './use-application.js';
4
4
  import { IN_BROWSER } from '../utils/globals.js';
5
5
 
6
- const SCREEN_EDGE_OFFSET = 20;
7
- const getRect = (el) => {
6
+ const SCREEN_EDGE_OFFSET = 10;
7
+ const REVERSE_SIDE = {
8
+ top: "bottom",
9
+ bottom: "top",
10
+ left: "right",
11
+ right: "left"
12
+ };
13
+ function parseSide(align) {
14
+ return align == null ? void 0 : align.split("-")[0];
15
+ }
16
+ function parseCross(align) {
17
+ if (!align) return void 0;
18
+ const idx = align.indexOf("-");
19
+ return idx === -1 ? void 0 : align.slice(idx + 1);
20
+ }
21
+ function resolveElement(value) {
8
22
  var _a;
9
- const element = (_a = el == null ? void 0 : el.$el) != null ? _a : el;
23
+ if (!value) {
24
+ return void 0;
25
+ }
26
+ return (_a = value.$el) != null ? _a : value;
27
+ }
28
+ function getElementRect(element) {
10
29
  const {
11
30
  top,
12
31
  left,
@@ -19,8 +38,19 @@ const getRect = (el) => {
19
38
  width,
20
39
  height
21
40
  };
22
- };
23
- function useAutoPosition(props) {
41
+ }
42
+ function getObservedSize(entry) {
43
+ var _a, _b, _c;
44
+ const borderBoxSize = (_a = entry.borderBoxSize) == null ? void 0 : _a[0];
45
+ return {
46
+ width: (_b = borderBoxSize == null ? void 0 : borderBoxSize.inlineSize) != null ? _b : entry.contentRect.width,
47
+ height: (_c = borderBoxSize == null ? void 0 : borderBoxSize.blockSize) != null ? _c : entry.contentRect.height
48
+ };
49
+ }
50
+ function isSameSize(current, width, height) {
51
+ return Math.round(current.width) === Math.round(width) && Math.round(current.height) === Math.round(height);
52
+ }
53
+ function useAutoPosition(props, activatorEl) {
24
54
  const { getScrollTop, getScrollLeft } = useApplication();
25
55
  const activator = ref({
26
56
  top: 0,
@@ -37,16 +67,30 @@ function useAutoPosition(props) {
37
67
  const contentRef = shallowRef();
38
68
  const offsetX = computed(() => Number(props.offsetX) || 0);
39
69
  const offsetY = computed(() => Number(props.offsetY) || 0);
40
- const isXDirection = computed(() => props.left || props.right);
41
- const shouldReverse = computed(() => props.strategy === "reverse");
70
+ const side = computed(() => parseSide(props.align));
71
+ const cross = computed(() => parseCross(props.align));
72
+ const isHorizontalSide = computed(() => unref(side) === "left" || unref(side) === "right");
73
+ const isReverseStrategy = computed(() => props.strategy === "reverse");
42
74
  let frameId = 0;
43
- const cancelScheduledUpdate = () => {
44
- if (!IN_BROWSER || !frameId) return;
45
- cancelAnimationFrame(frameId);
46
- frameId = 0;
75
+ let updateInFlight = false;
76
+ const getActivatorElement = () => {
77
+ return resolveElement(unref(activatorEl));
78
+ };
79
+ const getContentElement = () => {
80
+ return resolveElement(unref(contentRef));
47
81
  };
48
- const setActivatorSizes = (activatorEl) => {
49
- const rect = getRect(activatorEl);
82
+ const setActivatorDimensions = () => {
83
+ const element = getActivatorElement();
84
+ if (!element) {
85
+ activator.value = {
86
+ top: 0,
87
+ left: 0,
88
+ width: 0,
89
+ height: 0
90
+ };
91
+ return;
92
+ }
93
+ const rect = getElementRect(element);
50
94
  activator.value = {
51
95
  top: rect.top + getScrollTop(),
52
96
  left: rect.left + getScrollLeft(),
@@ -54,143 +98,169 @@ function useAutoPosition(props) {
54
98
  height: rect.height
55
99
  };
56
100
  };
57
- const setContentSizes = (contentEl) => {
58
- var _a;
59
- const element = (_a = contentEl == null ? void 0 : contentEl.$el) != null ? _a : contentEl;
101
+ const setContentDimensions = () => {
102
+ const element = getContentElement();
103
+ if (!element) {
104
+ return false;
105
+ }
60
106
  content.value.width = element.offsetWidth;
61
107
  content.value.height = element.offsetHeight;
108
+ return true;
62
109
  };
63
- const calcToBottom = () => {
64
- const { top, height } = unref(activator);
65
- return top + height + unref(offsetY);
66
- };
67
- const calcToTop = () => {
68
- const { top } = unref(activator);
69
- const { height } = unref(content);
70
- return top - height - unref(offsetY);
71
- };
72
- const calcToLeft = () => {
73
- const { left } = unref(activator);
74
- const { width } = unref(content);
75
- return left - width - unref(offsetX);
76
- };
77
- const calcToRight = () => {
78
- const { left, width } = unref(activator);
79
- return left + width + unref(offsetX);
80
- };
81
- const calcY = () => {
82
- return props.positionY + unref(offsetY);
83
- };
84
- const calcX = () => {
85
- return props.positionX + unref(offsetX);
110
+ const measure = () => {
111
+ setActivatorDimensions();
112
+ return setContentDimensions();
86
113
  };
87
- const getScreenXBounds = (contentLeft) => {
114
+ const getViewportXBounds = (left) => {
88
115
  const scrollLeft = getScrollLeft();
89
- const { width: cWidth } = unref(content);
116
+ const width = unref(content).width;
90
117
  const leftEdge = scrollLeft + SCREEN_EDGE_OFFSET;
91
118
  const rightEdge = scrollLeft + window.innerWidth - SCREEN_EDGE_OFFSET;
92
119
  return {
93
120
  leftEdge,
94
121
  rightEdge,
95
- isBeyondLeft: contentLeft < leftEdge,
96
- isBeyondRight: contentLeft + cWidth > rightEdge
122
+ isBeyondLeft: left < leftEdge,
123
+ isBeyondRight: left + width > rightEdge
97
124
  };
98
125
  };
99
- const getScreenYBounds = (contentTop) => {
126
+ const getViewportYBounds = (top) => {
100
127
  const scrollTop = getScrollTop();
101
- const { height: cHeight } = unref(content);
128
+ const height = unref(content).height;
102
129
  const topEdge = scrollTop + SCREEN_EDGE_OFFSET;
103
130
  const bottomEdge = scrollTop + window.innerHeight - SCREEN_EDGE_OFFSET;
104
131
  return {
105
132
  topEdge,
106
133
  bottomEdge,
107
- isBeyondTop: contentTop < topEdge,
108
- isBeyondBottom: contentTop + cHeight > bottomEdge
134
+ isBeyondTop: top < topEdge,
135
+ isBeyondBottom: top + height > bottomEdge
109
136
  };
110
137
  };
111
- const alignToActivatorTop = () => {
112
- const { top } = unref(activator);
113
- return top + unref(offsetY);
114
- };
115
- const alignToActivatorLeft = () => {
116
- const { left } = unref(activator);
117
- return left + unref(offsetX);
118
- };
119
- const getContentTop = () => {
120
- if (props.positionY) return calcY();
121
- if (props.top) return calcToTop();
122
- if (props.bottom) return calcToBottom();
123
- return alignToActivatorTop();
124
- };
125
- const getContentLeft = () => {
126
- if (props.positionX) return calcX();
127
- if (props.left) return calcToLeft();
128
- if (props.right) return calcToRight();
129
- return alignToActivatorLeft();
130
- };
131
- const calcYBounce = () => {
132
- const { height: cHeight } = unref(content);
133
- const cTop = getContentTop();
138
+ const getBaseTop = (s = unref(side), c = unref(cross)) => {
139
+ if (isDef(props.positionY)) {
140
+ return props.positionY + unref(offsetY);
141
+ }
142
+ const act = unref(activator);
143
+ const cnt = unref(content);
144
+ if (s === "top") return act.top - cnt.height - unref(offsetY);
145
+ if (s === "bottom") return act.top + act.height + unref(offsetY);
146
+ if (c === "center") return act.top + act.height / 2 - cnt.height / 2;
147
+ return act.top + unref(offsetY);
148
+ };
149
+ const getBaseLeft = (s = unref(side), c = unref(cross)) => {
150
+ if (isDef(props.positionX)) {
151
+ return props.positionX + unref(offsetX);
152
+ }
153
+ const act = unref(activator);
154
+ const cnt = unref(content);
155
+ if (s === "left") return act.left - cnt.width - unref(offsetX);
156
+ if (s === "right") return act.left + act.width + unref(offsetX);
157
+ if (c === "center") return act.left + act.width / 2 - cnt.width / 2;
158
+ if (c === "right") return act.left + act.width - cnt.width;
159
+ return act.left + unref(offsetX);
160
+ };
161
+ const getReversedTop = () => {
162
+ const s = unref(side);
163
+ if (s && !unref(isHorizontalSide)) {
164
+ return getBaseTop(REVERSE_SIDE[s]);
165
+ }
166
+ return getBaseTop();
167
+ };
168
+ const getReversedLeft = () => {
169
+ const s = unref(side);
170
+ if (s && unref(isHorizontalSide)) {
171
+ return getBaseLeft(REVERSE_SIDE[s]);
172
+ }
173
+ return getBaseLeft();
174
+ };
175
+ const clampTopToViewport = (top) => {
176
+ const { height } = unref(content);
134
177
  const {
135
178
  topEdge,
136
179
  bottomEdge,
137
180
  isBeyondTop,
138
181
  isBeyondBottom
139
- } = getScreenYBounds(cTop);
182
+ } = getViewportYBounds(top);
140
183
  if (!isBeyondTop && !isBeyondBottom) {
141
- return cTop;
142
- }
143
- if (unref(isXDirection) || !unref(shouldReverse)) {
144
- return isBeyondBottom ? bottomEdge - cHeight : topEdge;
145
- }
146
- if (isBeyondTop && props.top) {
147
- return calcToBottom();
148
- }
149
- if (isBeyondBottom && props.bottom) {
150
- return calcToTop();
184
+ return top;
151
185
  }
186
+ return isBeyondBottom ? bottomEdge - height : topEdge;
152
187
  };
153
- const calcXBounce = () => {
154
- const { width: cWidth } = unref(content);
155
- const cLeft = getContentLeft();
188
+ const clampLeftToViewport = (left) => {
189
+ const { width } = unref(content);
156
190
  const {
157
191
  leftEdge,
158
192
  rightEdge,
159
193
  isBeyondLeft,
160
194
  isBeyondRight
161
- } = getScreenXBounds(cLeft);
195
+ } = getViewportXBounds(left);
162
196
  if (!isBeyondLeft && !isBeyondRight) {
163
- return cLeft;
197
+ return left;
164
198
  }
165
- if (!unref(isXDirection) || !unref(shouldReverse)) {
166
- return isBeyondRight ? rightEdge - cWidth : leftEdge;
199
+ return isBeyondRight ? rightEdge - width : leftEdge;
200
+ };
201
+ const resolveTop = () => {
202
+ const top = getBaseTop();
203
+ const { isBeyondTop, isBeyondBottom } = getViewportYBounds(top);
204
+ if (!isBeyondTop && !isBeyondBottom) {
205
+ return top;
167
206
  }
168
- if (isBeyondLeft && props.left) {
169
- return calcToRight();
207
+ if (!unref(isReverseStrategy) || unref(isHorizontalSide)) {
208
+ return clampTopToViewport(top);
209
+ }
210
+ return getReversedTop();
211
+ };
212
+ const resolveLeft = () => {
213
+ const left = getBaseLeft();
214
+ const { isBeyondLeft, isBeyondRight } = getViewportXBounds(left);
215
+ if (!isBeyondLeft && !isBeyondRight) {
216
+ return left;
170
217
  }
171
- if (isBeyondRight && props.right) {
172
- return calcToLeft();
218
+ if (!unref(isReverseStrategy) || !unref(isHorizontalSide)) {
219
+ return clampLeftToViewport(left);
173
220
  }
221
+ return getReversedLeft();
174
222
  };
175
223
  const applyPosition = () => {
176
- content.value.top = calcYBounce();
177
- content.value.left = calcXBounce();
224
+ if (!IN_BROWSER) {
225
+ return;
226
+ }
227
+ content.value.top = resolveTop();
228
+ content.value.left = resolveLeft();
229
+ };
230
+ const cancelScheduledUpdate = () => {
231
+ if (!IN_BROWSER || !frameId) {
232
+ return;
233
+ }
234
+ cancelAnimationFrame(frameId);
235
+ frameId = 0;
236
+ };
237
+ const updateNow = () => {
238
+ if (!measure()) {
239
+ return;
240
+ }
241
+ applyPosition();
178
242
  };
179
243
  const scheduleUpdate = () => {
180
- if (!IN_BROWSER || frameId) return;
244
+ if (!IN_BROWSER || frameId) {
245
+ return;
246
+ }
181
247
  frameId = requestAnimationFrame(() => {
182
248
  frameId = 0;
183
- applyPosition();
249
+ updateNow();
184
250
  });
185
251
  };
186
- const update = async (activatorEl) => {
187
- if (unref(activatorEl)) {
188
- setActivatorSizes(activatorEl);
189
- await nextTick();
252
+ const update = async () => {
253
+ updateInFlight = true;
254
+ cancelScheduledUpdate();
255
+ setActivatorDimensions();
256
+ await nextTick();
257
+ if (!setContentDimensions()) {
258
+ updateInFlight = false;
259
+ return;
190
260
  }
191
- setContentSizes(contentRef.value);
192
261
  await nextTick();
193
- scheduleUpdate();
262
+ applyPosition();
263
+ updateInFlight = false;
194
264
  };
195
265
  if (IN_BROWSER) {
196
266
  const resizeObserver = new ResizeObserver((entries) => {
@@ -198,22 +268,32 @@ function useAutoPosition(props) {
198
268
  if (!entry) {
199
269
  return;
200
270
  }
201
- const { blockSize, inlineSize } = entry.borderBoxSize[0];
202
- if (!blockSize || !inlineSize) {
203
- return;
204
- }
271
+ const { width, height } = getObservedSize(entry);
205
272
  const current = unref(content);
206
- if (current.width === inlineSize && current.height === blockSize) {
273
+ if (isSameSize(current, width, height)) {
207
274
  return;
208
275
  }
209
- current.width = inlineSize;
210
- current.height = blockSize;
211
- scheduleUpdate();
276
+ current.width = width;
277
+ current.height = height;
278
+ if (!updateInFlight) {
279
+ scheduleUpdate();
280
+ }
212
281
  });
213
- watch(contentRef, (val, oldValue) => {
214
- var _a, _b;
215
- const nextEl = (_a = val == null ? void 0 : val.$el) != null ? _a : val;
216
- const prevEl = (_b = oldValue == null ? void 0 : oldValue.$el) != null ? _b : oldValue;
282
+ watch(
283
+ () => resolveElement(unref(activatorEl)),
284
+ (newEl, oldEl) => {
285
+ if (oldEl) {
286
+ resizeObserver.unobserve(oldEl);
287
+ }
288
+ if (newEl) {
289
+ resizeObserver.observe(newEl);
290
+ }
291
+ },
292
+ { immediate: true }
293
+ );
294
+ watch(contentRef, (newEl, oldEl) => {
295
+ const prevEl = resolveElement(oldEl);
296
+ const nextEl = resolveElement(newEl);
217
297
  if (prevEl) {
218
298
  resizeObserver.unobserve(prevEl);
219
299
  }
@@ -221,9 +301,17 @@ function useAutoPosition(props) {
221
301
  resizeObserver.observe(nextEl);
222
302
  }
223
303
  });
224
- if (isDef(props.positionX) || isDef(props.positionY)) {
225
- watch(() => [props.positionX, props.positionY], scheduleUpdate);
226
- }
304
+ watch(
305
+ () => [
306
+ props.positionX,
307
+ props.positionY,
308
+ props.align,
309
+ props.offsetX,
310
+ props.offsetY,
311
+ props.strategy
312
+ ],
313
+ scheduleUpdate
314
+ );
227
315
  onBeforeUnmount(() => {
228
316
  cancelScheduledUpdate();
229
317
  resizeObserver.disconnect();