@rotki/ui-library 2.12.2 → 2.13.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 (277) hide show
  1. package/dist/components/accordions/accordion/RuiAccordion.vue.d.ts +6 -14
  2. package/dist/components/accordions/accordion/RuiAccordion.vue.js +3 -4
  3. package/dist/components/accordions/accordion/RuiAccordion.vue.js.map +1 -1
  4. package/dist/components/accordions/accordions/RuiAccordions.vue.d.ts +10 -9
  5. package/dist/components/accordions/accordions/RuiAccordions.vue.js +27 -26
  6. package/dist/components/accordions/accordions/RuiAccordions.vue.js.map +1 -1
  7. package/dist/components/alerts/RuiAlert.vue.d.ts +5 -15
  8. package/dist/components/alerts/RuiAlert.vue2.js +8 -16
  9. package/dist/components/alerts/RuiAlert.vue2.js.map +1 -1
  10. package/dist/components/buttons/button/RuiButton.vue.d.ts +5 -7
  11. package/dist/components/buttons/button/RuiButton.vue2.js +19 -20
  12. package/dist/components/buttons/button/RuiButton.vue2.js.map +1 -1
  13. package/dist/components/buttons/button-group/RuiButtonGroup.vue.d.ts +6 -5
  14. package/dist/components/buttons/button-group/RuiButtonGroup.vue2.js +42 -41
  15. package/dist/components/buttons/button-group/RuiButtonGroup.vue2.js.map +1 -1
  16. package/dist/components/calendar/RuiCalendar.vue.d.ts +1 -6
  17. package/dist/components/calendar/RuiCalendar.vue.js +6 -7
  18. package/dist/components/calendar/RuiCalendar.vue.js.map +1 -1
  19. package/dist/components/calendar/RuiCalendarGrid.vue.js +1 -1
  20. package/dist/components/calendar/RuiCalendarGrid.vue2.js +19 -17
  21. package/dist/components/calendar/RuiCalendarGrid.vue2.js.map +1 -1
  22. package/dist/components/calendar/RuiCalendarHeader.vue.js +1 -1
  23. package/dist/components/calendar/RuiCalendarHeader.vue2.js +2 -3
  24. package/dist/components/calendar/RuiCalendarHeader.vue2.js.map +1 -1
  25. package/dist/components/calendar/RuiCalendarMenu.vue.js +1 -1
  26. package/dist/components/calendar/RuiCalendarMenu.vue2.js +47 -39
  27. package/dist/components/calendar/RuiCalendarMenu.vue2.js.map +1 -1
  28. package/dist/components/cards/RuiCard.vue.d.ts +9 -24
  29. package/dist/components/cards/RuiCard.vue2.js +7 -7
  30. package/dist/components/cards/RuiCard.vue2.js.map +1 -1
  31. package/dist/components/cards/RuiCardHeader.vue.d.ts +5 -10
  32. package/dist/components/cards/RuiCardHeader.vue2.js.map +1 -1
  33. package/dist/components/chips/RuiChip.vue.d.ts +7 -21
  34. package/dist/components/chips/RuiChip.vue2.js +16 -21
  35. package/dist/components/chips/RuiChip.vue2.js.map +1 -1
  36. package/dist/components/color-picker/RuiColorBoard.vue.d.ts +1 -1
  37. package/dist/components/color-picker/RuiColorBoard.vue2.js +14 -18
  38. package/dist/components/color-picker/RuiColorBoard.vue2.js.map +1 -1
  39. package/dist/components/color-picker/RuiColorDisplay.vue.js +3 -5
  40. package/dist/components/color-picker/RuiColorDisplay.vue.js.map +1 -1
  41. package/dist/components/color-picker/RuiColorHue.vue2.js +10 -13
  42. package/dist/components/color-picker/RuiColorHue.vue2.js.map +1 -1
  43. package/dist/components/color-picker/RuiColorInput.vue.js +8 -6
  44. package/dist/components/color-picker/RuiColorInput.vue.js.map +1 -1
  45. package/dist/components/color-picker/RuiColorPicker.vue.d.ts +7 -9
  46. package/dist/components/color-picker/RuiColorPicker.vue.js +18 -13
  47. package/dist/components/color-picker/RuiColorPicker.vue.js.map +1 -1
  48. package/dist/components/color-picker/utils.js +22 -5
  49. package/dist/components/color-picker/utils.js.map +1 -1
  50. package/dist/components/date-time-picker/RuiDateTimePicker.vue.d.ts +2 -44
  51. package/dist/components/date-time-picker/RuiDateTimePicker.vue2.js +73 -77
  52. package/dist/components/date-time-picker/RuiDateTimePicker.vue2.js.map +1 -1
  53. package/dist/components/date-time-picker/dayjs-setup.d.ts +1 -0
  54. package/dist/components/date-time-picker/dayjs-setup.js +8 -0
  55. package/dist/components/date-time-picker/dayjs-setup.js.map +1 -0
  56. package/dist/components/date-time-picker/segment-config.d.ts +14 -0
  57. package/dist/components/date-time-picker/segment-config.js +23 -0
  58. package/dist/components/date-time-picker/segment-config.js.map +1 -0
  59. package/dist/components/date-time-picker/segment-utils.d.ts +5 -0
  60. package/dist/components/date-time-picker/segment-utils.js +36 -0
  61. package/dist/components/date-time-picker/segment-utils.js.map +1 -0
  62. package/dist/components/date-time-picker/use-date-time-selection.d.ts +1 -0
  63. package/dist/components/date-time-picker/use-date-time-selection.js +1 -0
  64. package/dist/components/date-time-picker/use-date-time-selection.js.map +1 -1
  65. package/dist/components/date-time-picker/use-keyboard-handler.d.ts +4 -8
  66. package/dist/components/date-time-picker/use-keyboard-handler.js +9 -54
  67. package/dist/components/date-time-picker/use-keyboard-handler.js.map +1 -1
  68. package/dist/components/date-time-picker/utils.d.ts +1 -0
  69. package/dist/components/date-time-picker/utils.js +1 -0
  70. package/dist/components/date-time-picker/utils.js.map +1 -1
  71. package/dist/components/divider/RuiDivider.vue.d.ts +1 -3
  72. package/dist/components/divider/RuiDivider.vue.js.map +1 -1
  73. package/dist/components/forms/auto-complete/RuiAutoComplete.vue.d.ts +9 -1120
  74. package/dist/components/forms/auto-complete/RuiAutoComplete.vue2.js +144 -160
  75. package/dist/components/forms/auto-complete/RuiAutoComplete.vue2.js.map +1 -1
  76. package/dist/components/forms/checkbox/RuiCheckbox.vue.d.ts +15 -24
  77. package/dist/components/forms/checkbox/RuiCheckbox.vue2.js +31 -31
  78. package/dist/components/forms/checkbox/RuiCheckbox.vue2.js.map +1 -1
  79. package/dist/components/forms/radio-button/radio/RuiRadio.vue.d.ts +1 -1
  80. package/dist/components/forms/radio-button/radio/RuiRadio.vue2.js +18 -21
  81. package/dist/components/forms/radio-button/radio/RuiRadio.vue2.js.map +1 -1
  82. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue.d.ts +3 -1
  83. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue2.js +12 -15
  84. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue2.js.map +1 -1
  85. package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue.d.ts +5 -11
  86. package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue.js +6 -7
  87. package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue.js.map +1 -1
  88. package/dist/components/forms/select/RuiMenuSelect.vue.d.ts +9 -784
  89. package/dist/components/forms/select/RuiMenuSelect.vue2.js +48 -51
  90. package/dist/components/forms/select/RuiMenuSelect.vue2.js.map +1 -1
  91. package/dist/components/forms/select/RuiSimpleSelect.vue.d.ts +10 -11
  92. package/dist/components/forms/select/RuiSimpleSelect.vue2.js +15 -24
  93. package/dist/components/forms/select/RuiSimpleSelect.vue2.js.map +1 -1
  94. package/dist/components/forms/slider/RuiSlider.vue.d.ts +10 -26
  95. package/dist/components/forms/slider/RuiSlider.vue2.js +41 -46
  96. package/dist/components/forms/slider/RuiSlider.vue2.js.map +1 -1
  97. package/dist/components/forms/switch/RuiSwitch.vue.d.ts +12 -20
  98. package/dist/components/forms/switch/RuiSwitch.vue2.js +21 -20
  99. package/dist/components/forms/switch/RuiSwitch.vue2.js.map +1 -1
  100. package/dist/components/forms/text-area/RuiTextArea.vue.d.ts +5 -30
  101. package/dist/components/forms/text-area/RuiTextArea.vue2.js +43 -79
  102. package/dist/components/forms/text-area/RuiTextArea.vue2.js.map +1 -1
  103. package/dist/components/forms/text-field/RuiTextField.vue.d.ts +7 -27
  104. package/dist/components/forms/text-field/RuiTextField.vue2.js +35 -66
  105. package/dist/components/forms/text-field/RuiTextField.vue2.js.map +1 -1
  106. package/dist/components/helpers/RuiFormTextDetail.vue.d.ts +1 -5
  107. package/dist/components/helpers/RuiFormTextDetail.vue.js +5 -9
  108. package/dist/components/helpers/RuiFormTextDetail.vue.js.map +1 -1
  109. package/dist/components/icons/LazyIcon.vue.d.ts +1 -3
  110. package/dist/components/icons/RuiIcon.vue.d.ts +1 -4
  111. package/dist/components/icons/RuiIcon.vue2.js +8 -8
  112. package/dist/components/icons/RuiIcon.vue2.js.map +1 -1
  113. package/dist/components/index.d.ts +3 -3
  114. package/dist/components/loaders/RuiSkeletonBase.vue.d.ts +1 -3
  115. package/dist/components/loaders/RuiSkeletonBase.vue2.js +1 -1
  116. package/dist/components/loaders/RuiSkeletonBase.vue2.js.map +1 -1
  117. package/dist/components/loaders/RuiSkeletonLoader.vue.d.ts +1 -4
  118. package/dist/components/loaders/RuiSkeletonLoader.vue2.js +1 -1
  119. package/dist/components/loaders/RuiSkeletonLoader.vue2.js.map +1 -1
  120. package/dist/components/logos/RuiLogo.vue.d.ts +1 -7
  121. package/dist/components/logos/RuiLogo.vue.js +11 -13
  122. package/dist/components/logos/RuiLogo.vue.js.map +1 -1
  123. package/dist/components/overlays/badge/RuiBadge.vue.d.ts +5 -20
  124. package/dist/components/overlays/badge/RuiBadge.vue2.js +11 -13
  125. package/dist/components/overlays/badge/RuiBadge.vue2.js.map +1 -1
  126. package/dist/components/overlays/bottom-sheet/RuiBottomSheet.vue.d.ts +10 -5
  127. package/dist/components/overlays/bottom-sheet/RuiBottomSheet.vue.js +18 -7
  128. package/dist/components/overlays/bottom-sheet/RuiBottomSheet.vue.js.map +1 -1
  129. package/dist/components/overlays/dialog/RuiDialog.vue.d.ts +21 -27
  130. package/dist/components/overlays/dialog/RuiDialog.vue2.js +80 -63
  131. package/dist/components/overlays/dialog/RuiDialog.vue2.js.map +1 -1
  132. package/dist/components/overlays/menu/RuiMenu.vue.d.ts +24 -35
  133. package/dist/components/overlays/menu/RuiMenu.vue2.js +67 -76
  134. package/dist/components/overlays/menu/RuiMenu.vue2.js.map +1 -1
  135. package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue.d.ts +22 -30
  136. package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue2.js +71 -47
  137. package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue2.js.map +1 -1
  138. package/dist/components/overlays/notification/RuiNotification.vue.d.ts +12 -12
  139. package/dist/components/overlays/notification/RuiNotification.vue.js +25 -22
  140. package/dist/components/overlays/notification/RuiNotification.vue.js.map +1 -1
  141. package/dist/components/overlays/tooltip/RuiTooltip.vue.d.ts +7 -18
  142. package/dist/components/overlays/tooltip/RuiTooltip.vue2.js +11 -8
  143. package/dist/components/overlays/tooltip/RuiTooltip.vue2.js.map +1 -1
  144. package/dist/components/progress/RuiProgress.vue.d.ts +8 -10
  145. package/dist/components/progress/RuiProgress.vue2.js +18 -24
  146. package/dist/components/progress/RuiProgress.vue2.js.map +1 -1
  147. package/dist/components/steppers/RuiFooterStepper.vue.d.ts +10 -11
  148. package/dist/components/steppers/RuiFooterStepper.vue2.js +21 -21
  149. package/dist/components/steppers/RuiFooterStepper.vue2.js.map +1 -1
  150. package/dist/components/steppers/RuiStepper.vue.d.ts +6 -15
  151. package/dist/components/steppers/RuiStepper.vue2.js +31 -33
  152. package/dist/components/steppers/RuiStepper.vue2.js.map +1 -1
  153. package/dist/components/steppers/RuiStepperCustomIcon.vue.d.ts +1 -3
  154. package/dist/components/steppers/RuiStepperCustomIcon.vue2.js +1 -1
  155. package/dist/components/steppers/RuiStepperCustomIcon.vue2.js.map +1 -1
  156. package/dist/components/steppers/RuiStepperIcon.vue.d.ts +1 -3
  157. package/dist/components/steppers/RuiStepperIcon.vue2.js +1 -1
  158. package/dist/components/steppers/RuiStepperIcon.vue2.js.map +1 -1
  159. package/dist/components/tables/RuiDataTable.vue.d.ts +29 -81
  160. package/dist/components/tables/RuiDataTable.vue2.js +173 -582
  161. package/dist/components/tables/RuiDataTable.vue2.js.map +1 -1
  162. package/dist/components/tables/RuiDataTable.vue3.js +24 -27
  163. package/dist/components/tables/RuiDataTable.vue3.js.map +1 -1
  164. package/dist/components/tables/RuiExpandButton.vue.d.ts +3 -6
  165. package/dist/components/tables/RuiExpandButton.vue2.js +1 -0
  166. package/dist/components/tables/RuiExpandButton.vue2.js.map +1 -1
  167. package/dist/components/tables/RuiTableHead.vue.d.ts +4 -7
  168. package/dist/components/tables/RuiTableHead.vue2.js +19 -19
  169. package/dist/components/tables/RuiTableHead.vue2.js.map +1 -1
  170. package/dist/components/tables/RuiTablePagination.vue.d.ts +10 -10
  171. package/dist/components/tables/RuiTablePagination.vue2.js +17 -16
  172. package/dist/components/tables/RuiTablePagination.vue2.js.map +1 -1
  173. package/dist/components/tabs/tab/RuiTab.vue.d.ts +3 -18
  174. package/dist/components/tabs/tab/RuiTab.vue2.js +80 -51
  175. package/dist/components/tabs/tab/RuiTab.vue2.js.map +1 -1
  176. package/dist/components/tabs/tab-item/RuiTabItem.vue.d.ts +3 -11
  177. package/dist/components/tabs/tab-item/RuiTabItem.vue2.js +1 -1
  178. package/dist/components/tabs/tab-item/RuiTabItem.vue2.js.map +1 -1
  179. package/dist/components/tabs/tab-items/RuiTabItems.vue.d.ts +1 -4
  180. package/dist/components/tabs/tab-items/RuiTabItems.vue2.js +18 -18
  181. package/dist/components/tabs/tab-items/RuiTabItems.vue2.js.map +1 -1
  182. package/dist/components/tabs/tabs/RuiTabs.vue.d.ts +10 -14
  183. package/dist/components/tabs/tabs/RuiTabs.vue2.js +101 -94
  184. package/dist/components/tabs/tabs/RuiTabs.vue2.js.map +1 -1
  185. package/dist/components/time-picker/RuiTimePicker.vue.d.ts +1 -4
  186. package/dist/components/time-picker/RuiTimePicker.vue2.js +68 -35
  187. package/dist/components/time-picker/RuiTimePicker.vue2.js.map +1 -1
  188. package/dist/composables/breakpoint.js +8 -13
  189. package/dist/composables/breakpoint.js.map +1 -1
  190. package/dist/composables/dropdown-menu.d.ts +7 -4
  191. package/dist/composables/dropdown-menu.js +73 -50
  192. package/dist/composables/dropdown-menu.js.map +1 -1
  193. package/dist/composables/forms/auto-complete/focus.d.ts +7 -5
  194. package/dist/composables/forms/auto-complete/focus.js +28 -17
  195. package/dist/composables/forms/auto-complete/focus.js.map +1 -1
  196. package/dist/composables/forms/auto-complete/index.d.ts +0 -9
  197. package/dist/composables/forms/auto-complete/keyboard-navigation.d.ts +8 -3
  198. package/dist/composables/forms/auto-complete/keyboard-navigation.js +11 -5
  199. package/dist/composables/forms/auto-complete/keyboard-navigation.js.map +1 -1
  200. package/dist/composables/forms/auto-complete/search.d.ts +7 -0
  201. package/dist/composables/forms/auto-complete/search.js +10 -8
  202. package/dist/composables/forms/auto-complete/search.js.map +1 -1
  203. package/dist/composables/forms/auto-complete/value.d.ts +4 -0
  204. package/dist/composables/forms/auto-complete/value.js +24 -42
  205. package/dist/composables/forms/auto-complete/value.js.map +1 -1
  206. package/dist/composables/forms/use-label-with-quote.d.ts +2 -0
  207. package/dist/composables/forms/use-label-with-quote.js +14 -0
  208. package/dist/composables/forms/use-label-with-quote.js.map +1 -0
  209. package/dist/composables/forms/use-prepend-append-width.d.ts +6 -0
  210. package/dist/composables/forms/use-prepend-append-width.js +25 -0
  211. package/dist/composables/forms/use-prepend-append-width.js.map +1 -0
  212. package/dist/composables/popper.js +60 -46
  213. package/dist/composables/popper.js.map +1 -1
  214. package/dist/composables/sticky-header.d.ts +7 -5
  215. package/dist/composables/sticky-header.js +51 -41
  216. package/dist/composables/sticky-header.js.map +1 -1
  217. package/dist/composables/tables/data-table/columns.d.ts +25 -0
  218. package/dist/composables/tables/data-table/columns.js +54 -0
  219. package/dist/composables/tables/data-table/columns.js.map +1 -0
  220. package/dist/composables/tables/data-table/expansion.d.ts +17 -0
  221. package/dist/composables/tables/data-table/expansion.js +38 -0
  222. package/dist/composables/tables/data-table/expansion.js.map +1 -0
  223. package/dist/composables/tables/data-table/grouping.d.ts +29 -0
  224. package/dist/composables/tables/data-table/grouping.js +136 -0
  225. package/dist/composables/tables/data-table/grouping.js.map +1 -0
  226. package/dist/composables/tables/data-table/pagination.d.ts +33 -0
  227. package/dist/composables/tables/data-table/pagination.js +119 -0
  228. package/dist/composables/tables/data-table/pagination.js.map +1 -0
  229. package/dist/composables/tables/data-table/selection.d.ts +29 -0
  230. package/dist/composables/tables/data-table/selection.js +164 -0
  231. package/dist/composables/tables/data-table/selection.js.map +1 -0
  232. package/dist/composables/tables/data-table/sort.d.ts +32 -0
  233. package/dist/composables/tables/data-table/sort.js +136 -0
  234. package/dist/composables/tables/data-table/sort.js.map +1 -0
  235. package/dist/composables/tables/data-table/types.d.ts +14 -0
  236. package/dist/composables/tables/data-table/types.js +11 -0
  237. package/dist/composables/tables/data-table/types.js.map +1 -0
  238. package/dist/composables/theme.js +1 -20
  239. package/dist/composables/theme.js.map +1 -1
  240. package/dist/composables/timeout-manager.d.ts +4 -2
  241. package/dist/composables/timeout-manager.js +2 -1
  242. package/dist/composables/timeout-manager.js.map +1 -1
  243. package/dist/icons/icons_1.js +28 -28
  244. package/dist/icons/icons_1.js.map +1 -1
  245. package/dist/icons/icons_2.d.ts +8 -8
  246. package/dist/icons/icons_2.js +52 -52
  247. package/dist/icons/icons_2.js.map +1 -1
  248. package/dist/icons/icons_3.d.ts +18 -18
  249. package/dist/icons/icons_3.js +108 -108
  250. package/dist/icons/icons_3.js.map +1 -1
  251. package/dist/icons/icons_4.d.ts +35 -0
  252. package/dist/icons/icons_4.js +176 -1
  253. package/dist/icons/icons_4.js.map +1 -1
  254. package/dist/icons/index.d.ts +1 -1
  255. package/dist/icons/index.js +1 -1
  256. package/dist/icons/index.js.map +1 -1
  257. package/dist/index.js +43 -15
  258. package/dist/index.js.map +1 -1
  259. package/dist/style.css +189 -162
  260. package/dist/theme/index.js +15 -1
  261. package/dist/theme/index.js.map +1 -1
  262. package/dist/utils/assert.d.ts +1 -1
  263. package/dist/utils/assert.js.map +1 -1
  264. package/dist/utils/form-text-detail.d.ts +9 -8
  265. package/dist/utils/form-text-detail.js +1 -2
  266. package/dist/utils/form-text-detail.js.map +1 -1
  267. package/dist/utils/helpers.d.ts +4 -32
  268. package/dist/utils/helpers.js +8 -9
  269. package/dist/utils/helpers.js.map +1 -1
  270. package/dist/utils/is-equal.d.ts +1 -1
  271. package/dist/utils/is-equal.js +5 -3
  272. package/dist/utils/is-equal.js.map +1 -1
  273. package/dist/web-types.json +359 -359
  274. package/package.json +44 -35
  275. package/dist/utils/generate-id.d.ts +0 -5
  276. package/dist/utils/generate-id.js +0 -21
  277. package/dist/utils/generate-id.js.map +0 -1
@@ -1,9 +1,9 @@
1
- import { defineComponent, toRefs, ref, watch, computed, openBlock, createElementBlock, withKeys, withModifiers, unref, createElementVNode, normalizeClass, renderSlot, normalizeProps, guardReactiveProps, createBlock, Teleport, createVNode, TransitionGroup, withCtx, mergeProps, createCommentVNode, nextTick } from "vue";
1
+ import { defineComponent, useModel, ref, useTemplateRef, toRef, computed, watch, openBlock, createElementBlock, withKeys, withModifiers, unref, createElementVNode, normalizeClass, renderSlot, normalizeProps, guardReactiveProps, createBlock, Teleport, createVNode, TransitionGroup, withCtx, mergeProps, createCommentVNode, mergeModels, nextTick } from "vue";
2
2
  import _sfc_main$1 from "../../helpers/RuiFormTextDetail.vue.js";
3
3
  import { usePopper } from "../../../composables/popper.js";
4
4
  import { useFormTextDetail } from "../../../utils/form-text-detail.js";
5
5
  import { useElementSize, onClickOutside } from "@vueuse/core";
6
- import { set, get } from "@vueuse/shared";
6
+ import { get, set } from "@vueuse/shared";
7
7
  const _hoisted_1 = ["data-menu-disabled", "aria-expanded"];
8
8
  const FOCUSABLE_ELEMENTS_SELECTOR = 'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])';
9
9
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -11,8 +11,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
11
11
  name: "RuiMenu"
12
12
  },
13
13
  __name: "RuiMenu",
14
- props: {
15
- modelValue: { type: Boolean, default: false },
14
+ props: /* @__PURE__ */ mergeModels({
16
15
  openOnHover: { type: Boolean, default: false },
17
16
  fullWidth: { type: Boolean, default: false },
18
17
  disabled: { type: Boolean, default: false },
@@ -23,32 +22,22 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
23
22
  menuClass: { default: "" },
24
23
  closeOnContentClick: { type: Boolean, default: false },
25
24
  persistOnActivatorClick: { type: Boolean, default: false },
26
- hint: { default: void 0 },
25
+ hint: {},
27
26
  errorMessages: { default: () => [] },
28
27
  successMessages: { default: () => [] },
29
- showDetails: { type: Boolean },
30
- dense: { type: Boolean },
28
+ showDetails: { type: Boolean, default: false },
29
+ dense: { type: Boolean, default: false },
31
30
  persistent: { type: Boolean, default: false },
32
31
  disableAutoFocus: { type: Boolean, default: false }
33
- },
34
- emits: ["update:model-value"],
35
- setup(__props, { emit: __emit }) {
36
- const props = __props;
37
- const emit = __emit;
38
- const {
39
- modelValue,
40
- closeDelay,
41
- openDelay,
42
- popper,
43
- disabled,
44
- persistOnActivatorClick,
45
- closeOnContentClick,
46
- openOnHover,
47
- errorMessages,
48
- successMessages,
49
- persistent,
50
- disableAutoFocus
51
- } = toRefs(props);
32
+ }, {
33
+ "modelValue": { type: Boolean, ...{ default: false } },
34
+ "modelModifiers": {}
35
+ }),
36
+ emits: ["update:modelValue"],
37
+ setup(__props) {
38
+ const modelValue = useModel(__props, "modelValue");
39
+ const click = ref(false);
40
+ const menuContent = useTemplateRef("menuContent");
52
41
  const {
53
42
  reference: activator,
54
43
  popper: menu,
@@ -60,12 +49,39 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
60
49
  onClose,
61
50
  onPopperLeave,
62
51
  updatePopper
63
- } = usePopper(popper, disabled, openDelay, closeDelay);
52
+ } = usePopper(
53
+ toRef(() => __props.popper),
54
+ toRef(() => __props.disabled),
55
+ toRef(() => __props.openDelay),
56
+ toRef(() => __props.closeDelay)
57
+ );
64
58
  const { width } = useElementSize(activator);
65
- const click = ref(false);
66
- const menuContent = ref();
59
+ const { hasError, hasSuccess } = useFormTextDetail(
60
+ toRef(() => __props.errorMessages),
61
+ toRef(() => __props.successMessages)
62
+ );
63
+ const baseMenuAttrs = computed(() => {
64
+ if (__props.disabled)
65
+ return {};
66
+ const clickVal = get(click);
67
+ return {
68
+ onMouseover: () => {
69
+ if (__props.openOnHover)
70
+ onOpen();
71
+ },
72
+ onMouseleave: () => {
73
+ if (__props.openOnHover && !clickVal)
74
+ onClose();
75
+ }
76
+ };
77
+ });
78
+ const menuAttrs = computed(() => {
79
+ if (__props.disabled)
80
+ return {};
81
+ return { ...get(baseMenuAttrs), onClick: checkClick };
82
+ });
67
83
  function focusMenu() {
68
- if (get(disableAutoFocus))
84
+ if (__props.disableAutoFocus)
69
85
  return;
70
86
  nextTick(() => {
71
87
  const content = get(menuContent);
@@ -79,13 +95,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
79
95
  return;
80
96
  onClose();
81
97
  set(click, false);
82
- if (!get(disableAutoFocus)) {
98
+ if (!__props.disableAutoFocus) {
83
99
  nextTick(() => {
84
100
  const activatorEl = get(activator);
85
101
  if (activatorEl) {
86
- const focusableEl = activatorEl.querySelector(
87
- FOCUSABLE_ELEMENTS_SELECTOR
88
- );
102
+ const focusableEl = activatorEl.querySelector(FOCUSABLE_ELEMENTS_SELECTOR);
89
103
  if (focusableEl) {
90
104
  focusableEl.focus();
91
105
  }
@@ -95,7 +109,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
95
109
  }
96
110
  function checkClick() {
97
111
  if (get(open) && get(click)) {
98
- if (!get(persistOnActivatorClick))
112
+ if (!__props.persistOnActivatorClick)
99
113
  onLeave();
100
114
  } else {
101
115
  onOpen();
@@ -103,6 +117,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
103
117
  }
104
118
  }
105
119
  watch(modelValue, (value) => {
120
+ if (get(open) === value)
121
+ return;
106
122
  if (value) {
107
123
  onOpen();
108
124
  set(click, true);
@@ -111,58 +127,37 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
111
127
  }
112
128
  });
113
129
  watch(open, (open2) => {
114
- emit("update:model-value", open2);
130
+ set(modelValue, open2);
115
131
  if (open2) {
116
132
  focusMenu();
117
133
  }
118
134
  });
119
- onClickOutside(menu, () => {
120
- if (get(open) && !get(persistent))
121
- onLeave();
122
- }, { ignore: [activator] });
123
- const baseMenuAttrs = computed(() => {
124
- if (get(disabled))
125
- return {};
126
- const openOnHoverVal = get(openOnHover);
127
- const clickVal = get(click);
128
- return {
129
- onMouseover: () => {
130
- if (openOnHoverVal)
131
- onOpen();
132
- },
133
- onMouseleave: () => {
134
- if (openOnHoverVal && !clickVal)
135
- onClose();
136
- }
137
- };
138
- });
139
- const menuAttrs = computed(() => {
140
- if (get(disabled))
141
- return {};
142
- return { ...get(baseMenuAttrs), onClick: checkClick };
143
- });
144
- const { hasError, hasSuccess } = useFormTextDetail(
145
- errorMessages,
146
- successMessages
135
+ onClickOutside(
136
+ menu,
137
+ () => {
138
+ if (get(open) && !__props.persistent)
139
+ onLeave();
140
+ },
141
+ { ignore: [activator] }
147
142
  );
148
143
  return (_ctx, _cache) => {
149
144
  return openBlock(), createElementBlock("div", {
150
145
  onKeydown: [
151
146
  _cache[5] || (_cache[5] = withKeys(withModifiers(($event) => onLeave(), ["stop"]), ["esc"])),
152
- _cache[6] || (_cache[6] = withKeys(($event) => !unref(disableAutoFocus) && unref(open) ? void 0 : null, ["tab"]))
147
+ _cache[6] || (_cache[6] = withKeys(($event) => !__props.disableAutoFocus && unref(open) ? void 0 : null, ["tab"]))
153
148
  ]
154
149
  }, [
155
150
  createElementVNode("div", {
156
151
  ref_key: "activator",
157
152
  ref: activator,
158
153
  class: normalizeClass([_ctx.$style.wrapper, __props.wrapperClass, { "w-full": __props.fullWidth }]),
159
- "data-menu-disabled": unref(disabled),
154
+ "data-menu-disabled": __props.disabled,
160
155
  "aria-haspopup": "true",
161
156
  "aria-expanded": unref(open)
162
157
  }, [
163
- renderSlot(_ctx.$slots, "activator", normalizeProps(guardReactiveProps({ attrs: unref(menuAttrs), open: unref(open), disabled: unref(disabled), hasError: unref(hasError), hasSuccess: unref(hasSuccess) })))
158
+ renderSlot(_ctx.$slots, "activator", normalizeProps(guardReactiveProps({ attrs: unref(menuAttrs), open: unref(open), disabled: __props.disabled, hasError: unref(hasError), hasSuccess: unref(hasSuccess) })))
164
159
  ], 10, _hoisted_1),
165
- !unref(disabled) ? (openBlock(), createBlock(Teleport, {
160
+ !__props.disabled ? (openBlock(), createBlock(Teleport, {
166
161
  key: 0,
167
162
  to: "body"
168
163
  }, [
@@ -170,13 +165,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
170
165
  key: 0,
171
166
  ref_key: "menu",
172
167
  ref: menu,
173
- class: normalizeClass([
174
- _ctx.$style.menu,
175
- __props.menuClass,
176
- _ctx.$style[`menu__${unref(popper)?.strategy ?? "absolute"}`]
177
- ]),
168
+ class: normalizeClass([_ctx.$style.menu, __props.menuClass, _ctx.$style[`menu__${__props.popper?.strategy ?? "absolute"}`]]),
178
169
  role: "menu",
179
- onClick: _cache[3] || (_cache[3] = ($event) => unref(closeOnContentClick) ? onLeave() : void 0),
170
+ onClick: _cache[3] || (_cache[3] = ($event) => __props.closeOnContentClick ? onLeave() : void 0),
180
171
  onKeydown: _cache[4] || (_cache[4] = withKeys(withModifiers(($event) => onLeave(), ["stop"]), ["esc"]))
181
172
  }, [
182
173
  createVNode(TransitionGroup, {
@@ -209,8 +200,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
209
200
  __props.showDetails ? (openBlock(), createBlock(_sfc_main$1, {
210
201
  key: 1,
211
202
  class: normalizeClass(["pt-1", [__props.dense ? "px-2" : "px-4"]]),
212
- "error-messages": unref(errorMessages),
213
- "success-messages": unref(successMessages),
203
+ "error-messages": __props.errorMessages,
204
+ "success-messages": __props.successMessages,
214
205
  hint: __props.hint
215
206
  }, null, 8, ["class", "error-messages", "success-messages", "hint"])) : createCommentVNode("", true)
216
207
  ], 32);
@@ -1 +1 @@
1
- {"version":3,"file":"RuiMenu.vue2.js","sources":["../../../../src/components/overlays/menu/RuiMenu.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport RuiFormTextDetail from '@/components/helpers/RuiFormTextDetail.vue';\nimport { type PopperOptions, usePopper } from '@/composables/popper';\nimport { useFormTextDetail } from '@/utils/form-text-detail';\n\nexport interface MenuProps {\n modelValue?: boolean;\n openOnHover?: boolean;\n fullWidth?: boolean;\n disabled?: boolean;\n openDelay?: number;\n closeDelay?: number;\n popper?: PopperOptions;\n wrapperClass?: string | object | string[];\n menuClass?: string | object | string[];\n closeOnContentClick?: boolean;\n persistOnActivatorClick?: boolean;\n hint?: string;\n errorMessages?: string | string[];\n successMessages?: string | string[];\n showDetails?: boolean;\n dense?: boolean;\n persistent?: boolean;\n disableAutoFocus?: boolean;\n}\n\ndefineOptions({\n name: 'RuiMenu',\n});\n\nconst props = withDefaults(defineProps<MenuProps>(), {\n modelValue: false,\n openOnHover: false,\n disabled: false,\n fullWidth: false,\n openDelay: 0,\n closeDelay: 0,\n popper: () => ({}),\n wrapperClass: '',\n menuClass: '',\n closeOnContentClick: false,\n persistOnActivatorClick: false,\n hint: undefined,\n errorMessages: () => [],\n successMessages: () => [],\n persistent: false,\n disableAutoFocus: false,\n});\n\nconst emit = defineEmits<{\n (e: 'update:model-value', value: boolean): void;\n}>();\n\nconst {\n modelValue,\n closeDelay,\n openDelay,\n popper,\n disabled,\n persistOnActivatorClick,\n closeOnContentClick,\n openOnHover,\n errorMessages,\n successMessages,\n persistent,\n disableAutoFocus,\n} = toRefs(props);\n\nconst {\n reference: activator,\n popper: menu,\n open,\n popperEnter,\n leavePending,\n onLeavePending,\n onOpen,\n onClose,\n onPopperLeave,\n updatePopper,\n} = usePopper(popper, disabled, openDelay, closeDelay);\n\nconst { width } = useElementSize(activator);\n\nconst click = ref<boolean>(false);\nconst menuContent = ref<HTMLElement>();\n\nconst FOCUSABLE_ELEMENTS_SELECTOR = 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])';\n\nfunction focusMenu() {\n if (get(disableAutoFocus))\n return;\n\n nextTick(() => {\n const content = get(menuContent);\n if (!content)\n return;\n\n // Focus on the menu container itself\n content.focus();\n });\n}\n\nfunction onLeave(event?: KeyboardEvent) {\n if (!get(open))\n return;\n onClose();\n set(click, false);\n event?.stopPropagation();\n\n // Return focus to activator when menu closes\n if (!get(disableAutoFocus)) {\n nextTick(() => {\n const activatorEl = get(activator);\n if (activatorEl) {\n const focusableEl = activatorEl.querySelector<HTMLElement>(\n FOCUSABLE_ELEMENTS_SELECTOR,\n );\n if (focusableEl) {\n focusableEl.focus();\n }\n }\n });\n }\n}\n\nfunction checkClick() {\n if (get(open) && get(click)) {\n if (!get(persistOnActivatorClick))\n onLeave();\n }\n else {\n onOpen();\n set(click, true);\n }\n}\n\nwatch(modelValue, (value) => {\n if (value) {\n onOpen();\n set(click, true);\n }\n else {\n onLeave();\n }\n});\n\nwatch(open, (open) => {\n emit('update:model-value', open);\n if (open) {\n focusMenu();\n }\n});\n\nonClickOutside(menu, () => {\n if (get(open) && !get(persistent))\n onLeave();\n}, { ignore: [activator] });\n\nconst baseMenuAttrs = computed(() => {\n if (get(disabled))\n return {};\n\n const openOnHoverVal = get(openOnHover);\n const clickVal = get(click);\n return {\n onMouseover: () => {\n if (openOnHoverVal)\n onOpen();\n },\n onMouseleave: () => {\n if (openOnHoverVal && !clickVal)\n onClose();\n },\n };\n});\n\nconst menuAttrs = computed(() => {\n if (get(disabled))\n return {};\n\n return { ...get(baseMenuAttrs), onClick: checkClick };\n});\n\nconst { hasError, hasSuccess } = useFormTextDetail(\n errorMessages,\n successMessages,\n);\n</script>\n\n<template>\n <div\n @keydown.esc.stop=\"onLeave()\"\n @keydown.tab=\"!disableAutoFocus && open ? undefined : null\"\n >\n <div\n ref=\"activator\"\n :class=\"[$style.wrapper, wrapperClass, { 'w-full': fullWidth }]\"\n :data-menu-disabled=\"disabled\"\n aria-haspopup=\"true\"\n :aria-expanded=\"open\"\n >\n <slot\n name=\"activator\"\n v-bind=\"{ attrs: menuAttrs, open, disabled, hasError, hasSuccess }\"\n />\n </div>\n <Teleport\n v-if=\"!disabled\"\n to=\"body\"\n >\n <div\n v-if=\"popperEnter\"\n ref=\"menu\"\n :class=\"[\n $style.menu,\n menuClass,\n $style[`menu__${popper?.strategy ?? 'absolute'}`],\n ]\"\n role=\"menu\"\n @click=\"closeOnContentClick ? onLeave() : undefined\"\n @keydown.esc.stop=\"onLeave()\"\n >\n <TransitionGroup\n enter-active-class=\"transition ease-out duration-200\"\n enter-from-class=\"opacity-0 translate-y-1\"\n enter-to-class=\"opacity-100 translate-y-0\"\n leave-active-class=\"transition ease-in duration-150\"\n leave-from-class=\"opacity-100 translate-y-0\"\n leave-to-class=\"opacity-0 translate-y-1\"\n @before-enter=\"updatePopper()\"\n @after-leave=\"leavePending ? onPopperLeave() : undefined\"\n @before-leave=\"onLeavePending()\"\n >\n <div\n v-if=\"open\"\n ref=\"menuContent\"\n key=\"menu\"\n role=\"menu-content\"\n :class=\"$style.base\"\n tabindex=\"-1\"\n v-bind=\"baseMenuAttrs\"\n >\n <slot v-bind=\"{ width }\" />\n </div>\n </TransitionGroup>\n </div>\n </Teleport>\n <RuiFormTextDetail\n v-if=\"showDetails\"\n class=\"pt-1\"\n :class=\"[dense ? 'px-2' : 'px-4']\"\n :error-messages=\"errorMessages\"\n :success-messages=\"successMessages\"\n :hint=\"hint\"\n />\n </div>\n</template>\n\n<style lang=\"scss\" module>\n.wrapper {\n @apply relative inline-flex max-w-full;\n}\n\n.menu {\n @apply w-max transform transition-opacity delay-0 z-[9999];\n\n &__fixed {\n @apply fixed;\n }\n\n &__absolute {\n @apply absolute;\n }\n\n .base {\n @apply rounded overflow-hidden shadow-8;\n @apply bg-white text-rui-text;\n\n &:focus {\n @apply outline-none;\n }\n }\n}\n\n:global(.dark) {\n .menu {\n .base {\n @apply bg-[#2E2E2E];\n }\n }\n}\n</style>\n"],"names":["open","_createElementBlock","_unref","_createElementVNode","$style","_renderSlot","_normalizeProps","_guardReactiveProps","_createBlock","_Teleport","_normalizeClass","_createVNode","_TransitionGroup","_openBlock","_mergeProps","RuiFormTextDetail"],"mappings":"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"}
1
+ {"version":3,"file":"RuiMenu.vue2.js","sources":["../../../../src/components/overlays/menu/RuiMenu.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport RuiFormTextDetail from '@/components/helpers/RuiFormTextDetail.vue';\nimport { type PopperOptions, usePopper } from '@/composables/popper';\nimport { useFormTextDetail } from '@/utils/form-text-detail';\n\nexport interface MenuProps {\n openOnHover?: boolean;\n fullWidth?: boolean;\n disabled?: boolean;\n openDelay?: number;\n closeDelay?: number;\n popper?: PopperOptions;\n wrapperClass?: string | object | string[];\n menuClass?: string | object | string[];\n closeOnContentClick?: boolean;\n persistOnActivatorClick?: boolean;\n hint?: string;\n errorMessages?: string | string[];\n successMessages?: string | string[];\n showDetails?: boolean;\n dense?: boolean;\n persistent?: boolean;\n disableAutoFocus?: boolean;\n}\n\ndefineOptions({\n name: 'RuiMenu',\n});\n\nconst modelValue = defineModel<boolean>({ default: false });\n\nconst {\n openOnHover = false,\n disabled = false,\n fullWidth = false,\n openDelay = 0,\n closeDelay = 0,\n popper = {},\n wrapperClass = '',\n menuClass = '',\n closeOnContentClick = false,\n persistOnActivatorClick = false,\n hint,\n errorMessages = [],\n successMessages = [],\n showDetails = false,\n dense = false,\n persistent = false,\n disableAutoFocus = false,\n} = defineProps<MenuProps>();\n\ndefineSlots<{\n activator?: (props: {\n attrs: { onMouseover?: () => void; onMouseleave?: () => void; onClick?: () => void };\n open: boolean;\n disabled: boolean;\n hasError: boolean;\n hasSuccess: boolean;\n }) => any;\n default?: (props: { width: number }) => any;\n}>();\n\nconst click = ref<boolean>(false);\nconst menuContent = useTemplateRef<HTMLElement>('menuContent');\n\nconst FOCUSABLE_ELEMENTS_SELECTOR =\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])';\n\nconst {\n reference: activator,\n popper: menu,\n open,\n popperEnter,\n leavePending,\n onLeavePending,\n onOpen,\n onClose,\n onPopperLeave,\n updatePopper,\n} = usePopper(\n toRef(() => popper),\n toRef(() => disabled),\n toRef(() => openDelay),\n toRef(() => closeDelay),\n);\n\nconst { width } = useElementSize(activator);\n\nconst { hasError, hasSuccess } = useFormTextDetail(\n toRef(() => errorMessages),\n toRef(() => successMessages),\n);\n\nconst baseMenuAttrs = computed<{ onMouseover?: () => void; onMouseleave?: () => void }>(() => {\n if (disabled)\n return {};\n\n const clickVal = get(click);\n return {\n onMouseover: () => {\n if (openOnHover)\n onOpen();\n },\n onMouseleave: () => {\n if (openOnHover && !clickVal)\n onClose();\n },\n };\n});\n\nconst menuAttrs = computed<{\n onMouseover?: () => void;\n onMouseleave?: () => void;\n onClick?: () => void;\n}>(() => {\n if (disabled)\n return {};\n\n return { ...get(baseMenuAttrs), onClick: checkClick };\n});\n\nfunction focusMenu(): void {\n if (disableAutoFocus)\n return;\n\n nextTick(() => {\n const content = get(menuContent);\n if (!content)\n return;\n\n // Focus on the menu container itself\n content.focus();\n });\n}\n\nfunction onLeave(event?: KeyboardEvent): void {\n if (!get(open))\n return;\n onClose();\n set(click, false);\n event?.stopPropagation();\n\n // Return focus to activator when menu closes\n if (!disableAutoFocus) {\n nextTick(() => {\n const activatorEl = get(activator);\n if (activatorEl) {\n const focusableEl = activatorEl.querySelector<HTMLElement>(FOCUSABLE_ELEMENTS_SELECTOR);\n if (focusableEl) {\n focusableEl.focus();\n }\n }\n });\n }\n}\n\nfunction checkClick(): void {\n if (get(open) && get(click)) {\n if (!persistOnActivatorClick)\n onLeave();\n }\n else {\n onOpen();\n set(click, true);\n }\n}\n\nwatch(modelValue, (value) => {\n if (get(open) === value)\n return;\n\n if (value) {\n onOpen();\n set(click, true);\n }\n else {\n onLeave();\n }\n});\n\nwatch(open, (open) => {\n set(modelValue, open);\n if (open) {\n focusMenu();\n }\n});\n\nonClickOutside(\n menu,\n () => {\n if (get(open) && !persistent)\n onLeave();\n },\n { ignore: [activator] },\n);\n</script>\n\n<template>\n <div\n @keydown.esc.stop=\"onLeave()\"\n @keydown.tab=\"!disableAutoFocus && open ? undefined : null\"\n >\n <div\n ref=\"activator\"\n :class=\"[$style.wrapper, wrapperClass, { 'w-full': fullWidth }]\"\n :data-menu-disabled=\"disabled\"\n aria-haspopup=\"true\"\n :aria-expanded=\"open\"\n >\n <slot\n name=\"activator\"\n v-bind=\"{ attrs: menuAttrs, open, disabled, hasError, hasSuccess }\"\n />\n </div>\n <Teleport\n v-if=\"!disabled\"\n to=\"body\"\n >\n <div\n v-if=\"popperEnter\"\n ref=\"menu\"\n :class=\"[$style.menu, menuClass, $style[`menu__${popper?.strategy ?? 'absolute'}`]]\"\n role=\"menu\"\n @click=\"closeOnContentClick ? onLeave() : undefined\"\n @keydown.esc.stop=\"onLeave()\"\n >\n <TransitionGroup\n enter-active-class=\"transition ease-out duration-200\"\n enter-from-class=\"opacity-0 translate-y-1\"\n enter-to-class=\"opacity-100 translate-y-0\"\n leave-active-class=\"transition ease-in duration-150\"\n leave-from-class=\"opacity-100 translate-y-0\"\n leave-to-class=\"opacity-0 translate-y-1\"\n @before-enter=\"updatePopper()\"\n @after-leave=\"leavePending ? onPopperLeave() : undefined\"\n @before-leave=\"onLeavePending()\"\n >\n <div\n v-if=\"open\"\n ref=\"menuContent\"\n key=\"menu\"\n role=\"menu-content\"\n :class=\"$style.base\"\n tabindex=\"-1\"\n v-bind=\"baseMenuAttrs\"\n >\n <slot v-bind=\"{ width }\" />\n </div>\n </TransitionGroup>\n </div>\n </Teleport>\n <RuiFormTextDetail\n v-if=\"showDetails\"\n class=\"pt-1\"\n :class=\"[dense ? 'px-2' : 'px-4']\"\n :error-messages=\"errorMessages\"\n :success-messages=\"successMessages\"\n :hint=\"hint\"\n />\n </div>\n</template>\n\n<style lang=\"scss\" module>\n.wrapper {\n @apply relative inline-flex max-w-full;\n}\n\n.menu {\n @apply w-max transform transition-opacity delay-0 z-[9999];\n\n &__fixed {\n @apply fixed;\n }\n\n &__absolute {\n @apply absolute;\n }\n\n .base {\n @apply rounded overflow-hidden shadow-8;\n @apply bg-white text-rui-text;\n\n &:focus {\n @apply outline-none;\n }\n }\n}\n\n:global(.dark) {\n .menu {\n .base {\n @apply bg-[#2E2E2E];\n }\n }\n}\n</style>\n"],"names":["_useModel","open","_createElementBlock","_unref","_createElementVNode","$style","_renderSlot","_normalizeProps","_guardReactiveProps","_createBlock","_Teleport","_normalizeClass","_createVNode","_TransitionGroup","_openBlock","_mergeProps","RuiFormTextDetail"],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  export interface NavigationDrawerProps {
2
- modelValue?: boolean;
3
2
  temporary?: boolean;
4
3
  stateless?: boolean;
5
4
  width?: string | number;
@@ -9,39 +8,32 @@ export interface NavigationDrawerProps {
9
8
  contentClass?: string | object | string[];
10
9
  ariaLabel?: string;
11
10
  }
12
- declare function close(): void;
13
- declare var __VLS_1: {
14
- open: boolean;
15
- attrs: {
16
- onClick: () => void;
17
- };
18
- }, __VLS_15: {
19
- attrs: {
20
- onClick: () => void;
21
- };
22
- close: typeof close;
11
+ type __VLS_Props = NavigationDrawerProps;
12
+ type __VLS_Slots = {
13
+ activator?: (props: {
14
+ open: boolean;
15
+ attrs: {
16
+ onClick: () => void;
17
+ };
18
+ }) => any;
19
+ default?: (props: {
20
+ attrs: {
21
+ onClick: () => void;
22
+ };
23
+ close: () => void;
24
+ }) => any;
23
25
  };
24
- type __VLS_Slots = {} & {
25
- activator?: (props: typeof __VLS_1) => any;
26
- } & {
27
- default?: (props: typeof __VLS_15) => any;
26
+ type __VLS_ModelProps = {
27
+ modelValue?: boolean;
28
28
  };
29
- declare const __VLS_base: import("vue").DefineComponent<NavigationDrawerProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
30
- "update:model-value": (value: boolean) => any;
29
+ type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
30
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
31
+ "update:modelValue": (value: boolean) => any;
31
32
  closed: () => any;
32
- }, string, import("vue").PublicProps, Readonly<NavigationDrawerProps> & Readonly<{
33
- "onUpdate:model-value"?: ((value: boolean) => any) | undefined;
33
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
34
+ "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
34
35
  onClosed?: (() => any) | undefined;
35
- }>, {
36
- modelValue: boolean;
37
- width: string | number;
38
- contentClass: string | object | string[];
39
- overlay: boolean;
40
- position: "left" | "right";
41
- temporary: boolean;
42
- stateless: boolean;
43
- miniVariant: boolean;
44
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
36
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
45
37
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
46
38
  declare const _default: typeof __VLS_export;
47
39
  export default _default;
@@ -1,7 +1,7 @@
1
- import { defineComponent, toRefs, ref, nextTick, watch, computed, openBlock, createElementBlock, renderSlot, normalizeProps, guardReactiveProps, unref, createBlock, Teleport, Transition, withCtx, withModifiers, normalizeClass, createCommentVNode, mergeProps } from "vue";
1
+ import { defineComponent, useModel, ref, useTemplateRef, computed, watch, nextTick, onBeforeUnmount, openBlock, createElementBlock, renderSlot, normalizeProps, guardReactiveProps, unref, createBlock, Teleport, Transition, withCtx, withModifiers, normalizeClass, createCommentVNode, mergeProps, mergeModels } from "vue";
2
2
  import { transformPropsUnit, getRootAttrs } from "../../../utils/helpers.js";
3
- import { watchImmediate, onClickOutside } from "@vueuse/core";
4
- import { set, get } from "@vueuse/shared";
3
+ import { get, set } from "@vueuse/shared";
4
+ import { onClickOutside } from "@vueuse/core";
5
5
  const _hoisted_1 = ["aria-label", "aria-hidden"];
6
6
  const _sfc_main = /* @__PURE__ */ defineComponent({
7
7
  ...{
@@ -9,8 +9,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
9
9
  inheritAttrs: false
10
10
  },
11
11
  __name: "RuiNavigationDrawer",
12
- props: {
13
- modelValue: { type: Boolean, default: false },
12
+ props: /* @__PURE__ */ mergeModels({
14
13
  temporary: { type: Boolean, default: false },
15
14
  stateless: { type: Boolean, default: false },
16
15
  width: { default: 360 },
@@ -19,75 +18,100 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
19
18
  position: { default: "left" },
20
19
  contentClass: { default: "" },
21
20
  ariaLabel: {}
22
- },
23
- emits: ["update:model-value", "closed"],
21
+ }, {
22
+ "modelValue": { type: Boolean, ...{ default: false } },
23
+ "modelModifiers": {}
24
+ }),
25
+ emits: /* @__PURE__ */ mergeModels(["closed"], ["update:modelValue"]),
24
26
  setup(__props, { emit: __emit }) {
25
- const props = __props;
27
+ const modelValue = useModel(__props, "modelValue");
26
28
  const emit = __emit;
27
- const {
28
- modelValue,
29
- position,
30
- miniVariant,
31
- width
32
- } = toRefs(props);
29
+ const internalValue = ref(false);
30
+ const isOpen = ref(false);
31
+ const content = useTemplateRef("content");
32
+ const style = computed(() => ({
33
+ width: transformPropsUnit(__props.width)
34
+ }));
35
+ const activatorAttrs = computed(() => ({
36
+ onClick: () => {
37
+ const newValue = !get(internalValue);
38
+ set(internalValue, newValue);
39
+ onUpdateModelValue(newValue);
40
+ }
41
+ }));
33
42
  function onUpdateModelValue(value) {
34
- emit("update:model-value", value);
43
+ set(modelValue, value);
35
44
  if (!value)
36
45
  emit("closed");
37
46
  }
38
- const internalValue = ref(false);
39
- const isOpen = ref(false);
40
- watchImmediate(modelValue, (value) => {
41
- nextTick(() => {
42
- set(internalValue, value);
43
- });
44
- });
47
+ function close() {
48
+ set(isOpen, false);
49
+ }
50
+ watch(
51
+ modelValue,
52
+ (value) => {
53
+ nextTick(() => {
54
+ set(internalValue, value);
55
+ });
56
+ },
57
+ { immediate: true }
58
+ );
59
+ let internalValueTimeoutId;
60
+ let isOpenTimeoutId;
61
+ let clickOutsideTimeoutId;
45
62
  watch(internalValue, (value) => {
63
+ if (internalValueTimeoutId !== void 0) {
64
+ clearTimeout(internalValueTimeoutId);
65
+ internalValueTimeoutId = void 0;
66
+ }
46
67
  if (value) {
47
68
  window.requestAnimationFrame(() => {
48
69
  set(isOpen, value);
49
70
  });
50
71
  } else {
51
- setTimeout(() => {
72
+ internalValueTimeoutId = setTimeout(() => {
52
73
  set(isOpen, value);
74
+ internalValueTimeoutId = void 0;
53
75
  }, 150);
54
76
  }
55
77
  });
56
78
  watch(isOpen, (isOpen2) => {
79
+ if (isOpenTimeoutId !== void 0) {
80
+ clearTimeout(isOpenTimeoutId);
81
+ isOpenTimeoutId = void 0;
82
+ }
57
83
  if (isOpen2) {
58
84
  onUpdateModelValue(isOpen2);
59
85
  set(internalValue, isOpen2);
60
86
  } else {
61
- setTimeout(() => {
87
+ isOpenTimeoutId = setTimeout(() => {
62
88
  onUpdateModelValue(isOpen2);
63
89
  set(internalValue, isOpen2);
90
+ isOpenTimeoutId = void 0;
64
91
  }, 150);
65
92
  }
66
93
  });
67
- function close() {
68
- set(isOpen, false);
69
- }
70
- const style = computed(() => ({
71
- width: transformPropsUnit(get(width))
72
- }));
73
- const content = ref(null);
74
94
  onClickOutside(content, () => {
75
- if (get(isOpen) && props.temporary && !props.stateless) {
76
- setTimeout(() => {
95
+ if (get(isOpen) && __props.temporary && !__props.stateless) {
96
+ if (clickOutsideTimeoutId !== void 0)
97
+ clearTimeout(clickOutsideTimeoutId);
98
+ clickOutsideTimeoutId = setTimeout(() => {
77
99
  close();
100
+ clickOutsideTimeoutId = void 0;
78
101
  }, 50);
79
102
  }
80
103
  });
81
- const activatorAttrs = computed(() => ({
82
- onClick: () => {
83
- const newValue = !get(internalValue);
84
- set(internalValue, newValue);
85
- onUpdateModelValue(newValue);
86
- }
87
- }));
104
+ onBeforeUnmount(() => {
105
+ if (internalValueTimeoutId !== void 0)
106
+ clearTimeout(internalValueTimeoutId);
107
+ if (isOpenTimeoutId !== void 0)
108
+ clearTimeout(isOpenTimeoutId);
109
+ if (clickOutsideTimeoutId !== void 0)
110
+ clearTimeout(clickOutsideTimeoutId);
111
+ });
88
112
  return (_ctx, _cache) => {
89
113
  return openBlock(), createElementBlock("div", null, [
90
- renderSlot(_ctx.$slots, "activator", normalizeProps(guardReactiveProps({ open: internalValue.value, attrs: unref(activatorAttrs) }))),
114
+ renderSlot(_ctx.$slots, "activator", normalizeProps(guardReactiveProps({ open: unref(internalValue), attrs: unref(activatorAttrs) }))),
91
115
  (openBlock(), createBlock(Teleport, { to: "body" }, [
92
116
  __props.overlay ? (openBlock(), createBlock(Transition, {
93
117
  key: 0,
@@ -99,7 +123,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
99
123
  "leave-to-class": "opacity-0"
100
124
  }, {
101
125
  default: withCtx(() => [
102
- isOpen.value && internalValue.value ? (openBlock(), createElementBlock("div", {
126
+ unref(isOpen) && unref(internalValue) ? (openBlock(), createElementBlock("div", {
103
127
  key: 0,
104
128
  "data-id": "overlay",
105
129
  class: normalizeClass(_ctx.$style.overlay),
@@ -108,7 +132,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
108
132
  ]),
109
133
  _: 1
110
134
  })) : createCommentVNode("", true),
111
- isOpen.value || internalValue.value || unref(miniVariant) ? (openBlock(), createElementBlock("aside", mergeProps({
135
+ unref(isOpen) || unref(internalValue) || __props.miniVariant ? (openBlock(), createElementBlock("aside", mergeProps({
112
136
  key: 1,
113
137
  ref_key: "content",
114
138
  ref: content,
@@ -117,15 +141,15 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
117
141
  _ctx.$style.content,
118
142
  __props.contentClass,
119
143
  {
120
- [_ctx.$style.visible]: isOpen.value && internalValue.value,
121
- [_ctx.$style[unref(position)]]: unref(position),
122
- [_ctx.$style.mini]: unref(miniVariant),
144
+ [_ctx.$style.visible]: unref(isOpen) && unref(internalValue),
145
+ [_ctx.$style[__props.position]]: __props.position,
146
+ [_ctx.$style.mini]: __props.miniVariant,
123
147
  [_ctx.$style.temporary]: __props.temporary,
124
148
  [_ctx.$style["with-overlay"]]: __props.overlay
125
149
  }
126
150
  ],
127
151
  "aria-label": __props.ariaLabel,
128
- "aria-hidden": unref(miniVariant) && !(isOpen.value && internalValue.value) ? "true" : void 0
152
+ "aria-hidden": __props.miniVariant && !(unref(isOpen) && unref(internalValue)) ? "true" : void 0
129
153
  }, unref(getRootAttrs)(_ctx.$attrs)), [
130
154
  renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps({ attrs: unref(activatorAttrs), close })))
131
155
  ], 16, _hoisted_1)) : createCommentVNode("", true)
@@ -1 +1 @@
1
- {"version":3,"file":"RuiNavigationDrawer.vue2.js","sources":["../../../../src/components/overlays/navigation-drawer/RuiNavigationDrawer.vue"],"sourcesContent":["<script setup lang='ts'>\nimport type { MaybeElement } from '@vueuse/core';\nimport { type Ref, ref } from 'vue';\nimport { getRootAttrs, transformPropsUnit } from '@/utils/helpers';\n\nexport interface NavigationDrawerProps {\n modelValue?: boolean;\n temporary?: boolean;\n stateless?: boolean;\n width?: string | number;\n miniVariant?: boolean;\n overlay?: boolean;\n position?: 'left' | 'right';\n contentClass?: string | object | string[];\n ariaLabel?: string;\n}\n\ndefineOptions({\n name: 'RuiNavigationDrawer',\n inheritAttrs: false,\n});\n\nconst props = withDefaults(defineProps<NavigationDrawerProps>(), {\n modelValue: false,\n temporary: false,\n stateless: false,\n width: 360,\n miniVariant: false,\n overlay: false,\n position: 'left',\n contentClass: '',\n});\n\nconst emit = defineEmits<{\n (e: 'update:model-value', value: boolean): void;\n (e: 'closed'): void;\n}>();\n\nconst {\n modelValue,\n position,\n miniVariant,\n width,\n} = toRefs(props);\n\nfunction onUpdateModelValue(value: boolean): void {\n emit('update:model-value', value);\n\n if (!value)\n emit('closed');\n}\n\nconst internalValue = ref<boolean>(false);\nconst isOpen = ref<boolean>(false);\n\nwatchImmediate(modelValue, (value) => {\n nextTick(() => {\n set(internalValue, value);\n });\n});\n\nwatch(internalValue, (value) => {\n if (value) {\n window.requestAnimationFrame(() => {\n set(isOpen, value);\n });\n }\n else {\n setTimeout(() => {\n set(isOpen, value);\n }, 150);\n }\n});\n\nwatch(isOpen, (isOpen) => {\n if (isOpen) {\n onUpdateModelValue(isOpen);\n set(internalValue, isOpen);\n }\n else {\n setTimeout(() => {\n onUpdateModelValue(isOpen);\n set(internalValue, isOpen);\n }, 150);\n }\n});\n\nfunction close(): void {\n set(isOpen, false);\n}\n\nconst style = computed(() => ({\n width: transformPropsUnit(get(width)),\n}));\n\nconst content: Ref<MaybeElement | null> = ref(null);\n\nonClickOutside(content, () => {\n if (get(isOpen) && props.temporary && !props.stateless) {\n setTimeout(() => {\n close();\n }, 50);\n }\n});\n\nconst activatorAttrs = computed(() => ({\n onClick: () => {\n const newValue = !get(internalValue);\n set(internalValue, newValue);\n onUpdateModelValue(newValue);\n },\n}));\n</script>\n\n<template>\n <div>\n <slot\n name=\"activator\"\n v-bind=\"{ open: internalValue, attrs: activatorAttrs }\"\n />\n <Teleport to=\"body\">\n <Transition\n v-if=\"overlay\"\n enter-from-class=\"opacity-0\"\n enter-active-class=\"ease-out duration-150\"\n enter-to-class=\"opacity-100\"\n leave-from-class=\"opacity-100\"\n leave-active-class=\"ease-in duration-150\"\n leave-to-class=\"opacity-0\"\n >\n <div\n v-if=\"isOpen && internalValue\"\n data-id=\"overlay\"\n :class=\"$style.overlay\"\n @click.stop=\"close()\"\n />\n </Transition>\n <aside\n v-if=\"isOpen || internalValue || miniVariant\"\n ref=\"content\"\n :style=\"style\"\n :class=\"[\n $style.content,\n contentClass,\n {\n [$style.visible]: isOpen && internalValue,\n [$style[position]]: position,\n [$style.mini]: miniVariant,\n [$style.temporary]: temporary,\n [$style['with-overlay']]: overlay,\n },\n ]\"\n :aria-label=\"ariaLabel\"\n :aria-hidden=\"miniVariant && !(isOpen && internalValue) ? 'true' : undefined\"\n v-bind=\"getRootAttrs($attrs)\"\n >\n <slot v-bind=\"{ attrs: activatorAttrs, close }\" />\n </aside>\n </Teleport>\n </div>\n</template>\n\n<style lang=\"scss\" module>\n.overlay {\n @apply absolute top-0 left-0 w-full h-full backdrop-blur bg-rui-grey-500/[0.5] z-[10000];\n}\n\n.content {\n @apply transition-all duration-150 ease-in-out top-0 h-full fixed text-rui-text bg-white z-[7];\n\n &.left {\n @apply -translate-x-full left-0;\n }\n\n &.right {\n @apply translate-x-full right-0;\n }\n\n &.with-overlay {\n @apply z-[10000];\n }\n\n &.visible {\n @apply translate-x-0;\n }\n\n &.temporary {\n &.visible {\n @apply shadow-5;\n }\n }\n\n &.mini {\n @apply translate-x-0;\n\n &:not(.visible) {\n @apply w-14 #{!important};\n }\n }\n}\n\n:global(.dark) {\n .overlay {\n @apply bg-black/[0.5];\n }\n\n .content {\n @apply bg-[#363636];\n }\n}\n</style>\n"],"names":["isOpen","_createElementBlock","_renderSlot","_normalizeProps","_guardReactiveProps","_unref","_createBlock","_Teleport","_Transition","_normalizeClass","$style","_openBlock","_mergeProps","$attrs"],"mappings":"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"}
1
+ {"version":3,"file":"RuiNavigationDrawer.vue2.js","sources":["../../../../src/components/overlays/navigation-drawer/RuiNavigationDrawer.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { MaybeElement } from '@vueuse/core';\nimport { getRootAttrs, transformPropsUnit } from '@/utils/helpers';\n\nexport interface NavigationDrawerProps {\n temporary?: boolean;\n stateless?: boolean;\n width?: string | number;\n miniVariant?: boolean;\n overlay?: boolean;\n position?: 'left' | 'right';\n contentClass?: string | object | string[];\n ariaLabel?: string;\n}\n\ndefineOptions({\n name: 'RuiNavigationDrawer',\n inheritAttrs: false,\n});\n\nconst modelValue = defineModel<boolean>({ default: false });\n\nconst {\n temporary = false,\n stateless = false,\n width = 360,\n miniVariant = false,\n overlay = false,\n position = 'left',\n contentClass = '',\n ariaLabel,\n} = defineProps<NavigationDrawerProps>();\n\nconst emit = defineEmits<{\n closed: [];\n}>();\n\ndefineSlots<{\n activator?: (props: { open: boolean; attrs: { onClick: () => void } }) => any;\n default?: (props: { attrs: { onClick: () => void }; close: () => void }) => any;\n}>();\n\nconst internalValue = ref<boolean>(false);\nconst isOpen = ref<boolean>(false);\nconst content = useTemplateRef<MaybeElement>('content');\n\nconst style = computed<{ width: string | undefined }>(() => ({\n width: transformPropsUnit(width),\n}));\n\nconst activatorAttrs = computed<{ onClick: () => void }>(() => ({\n onClick: () => {\n const newValue = !get(internalValue);\n set(internalValue, newValue);\n onUpdateModelValue(newValue);\n },\n}));\n\nfunction onUpdateModelValue(value: boolean): void {\n set(modelValue, value);\n\n if (!value)\n emit('closed');\n}\n\nfunction close(): void {\n set(isOpen, false);\n}\n\nwatch(\n modelValue,\n (value) => {\n nextTick(() => {\n set(internalValue, value);\n });\n },\n { immediate: true },\n);\n\nlet internalValueTimeoutId: ReturnType<typeof setTimeout> | undefined;\nlet isOpenTimeoutId: ReturnType<typeof setTimeout> | undefined;\nlet clickOutsideTimeoutId: ReturnType<typeof setTimeout> | undefined;\n\nwatch(internalValue, (value) => {\n if (internalValueTimeoutId !== undefined) {\n clearTimeout(internalValueTimeoutId);\n internalValueTimeoutId = undefined;\n }\n if (value) {\n window.requestAnimationFrame(() => {\n set(isOpen, value);\n });\n }\n else {\n internalValueTimeoutId = setTimeout(() => {\n set(isOpen, value);\n internalValueTimeoutId = undefined;\n }, 150);\n }\n});\n\nwatch(isOpen, (isOpen) => {\n if (isOpenTimeoutId !== undefined) {\n clearTimeout(isOpenTimeoutId);\n isOpenTimeoutId = undefined;\n }\n if (isOpen) {\n onUpdateModelValue(isOpen);\n set(internalValue, isOpen);\n }\n else {\n isOpenTimeoutId = setTimeout(() => {\n onUpdateModelValue(isOpen);\n set(internalValue, isOpen);\n isOpenTimeoutId = undefined;\n }, 150);\n }\n});\n\nonClickOutside(content, () => {\n if (get(isOpen) && temporary && !stateless) {\n if (clickOutsideTimeoutId !== undefined)\n clearTimeout(clickOutsideTimeoutId);\n\n clickOutsideTimeoutId = setTimeout(() => {\n close();\n clickOutsideTimeoutId = undefined;\n }, 50);\n }\n});\n\nonBeforeUnmount(() => {\n if (internalValueTimeoutId !== undefined)\n clearTimeout(internalValueTimeoutId);\n if (isOpenTimeoutId !== undefined)\n clearTimeout(isOpenTimeoutId);\n if (clickOutsideTimeoutId !== undefined)\n clearTimeout(clickOutsideTimeoutId);\n});\n</script>\n\n<template>\n <div>\n <slot\n name=\"activator\"\n v-bind=\"{ open: internalValue, attrs: activatorAttrs }\"\n />\n <Teleport to=\"body\">\n <Transition\n v-if=\"overlay\"\n enter-from-class=\"opacity-0\"\n enter-active-class=\"ease-out duration-150\"\n enter-to-class=\"opacity-100\"\n leave-from-class=\"opacity-100\"\n leave-active-class=\"ease-in duration-150\"\n leave-to-class=\"opacity-0\"\n >\n <div\n v-if=\"isOpen && internalValue\"\n data-id=\"overlay\"\n :class=\"$style.overlay\"\n @click.stop=\"close()\"\n />\n </Transition>\n <aside\n v-if=\"isOpen || internalValue || miniVariant\"\n ref=\"content\"\n :style=\"style\"\n :class=\"[\n $style.content,\n contentClass,\n {\n [$style.visible]: isOpen && internalValue,\n [$style[position]]: position,\n [$style.mini]: miniVariant,\n [$style.temporary]: temporary,\n [$style['with-overlay']]: overlay,\n },\n ]\"\n :aria-label=\"ariaLabel\"\n :aria-hidden=\"miniVariant && !(isOpen && internalValue) ? 'true' : undefined\"\n v-bind=\"getRootAttrs($attrs)\"\n >\n <slot v-bind=\"{ attrs: activatorAttrs, close }\" />\n </aside>\n </Teleport>\n </div>\n</template>\n\n<style lang=\"scss\" module>\n.overlay {\n @apply absolute top-0 left-0 w-full h-full backdrop-blur bg-rui-grey-500/[0.5] z-[10000];\n}\n\n.content {\n @apply transition-all duration-150 ease-in-out top-0 h-full fixed text-rui-text bg-white z-[7];\n\n &.left {\n @apply -translate-x-full left-0;\n }\n\n &.right {\n @apply translate-x-full right-0;\n }\n\n &.with-overlay {\n @apply z-[10000];\n }\n\n &.visible {\n @apply translate-x-0;\n }\n\n &.temporary {\n &.visible {\n @apply shadow-5;\n }\n }\n\n &.mini {\n @apply translate-x-0;\n\n &:not(.visible) {\n @apply w-14 #{!important};\n }\n }\n}\n\n:global(.dark) {\n .overlay {\n @apply bg-black/[0.5];\n }\n\n .content {\n @apply bg-[#363636];\n }\n}\n</style>\n"],"names":["_useModel","isOpen","_createElementBlock","_renderSlot","_normalizeProps","_guardReactiveProps","_unref","_createBlock","_Teleport","_Transition","_normalizeClass","$style","_openBlock","_mergeProps","$attrs"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,UAAM,aAAaA,8BAAuC;AAa1D,UAAM,OAAO;AASb,UAAM,gBAAgB,IAAa,KAAK;AACxC,UAAM,SAAS,IAAa,KAAK;AACjC,UAAM,UAAU,eAA6B,SAAS;AAEtD,UAAM,QAAQ,SAAwC,OAAO;AAAA,MAC3D,OAAO,mBAAmB,QAAA,KAAK;AAAA,IAAA,EAC/B;AAEF,UAAM,iBAAiB,SAAkC,OAAO;AAAA,MAC9D,SAAS,MAAM;AACb,cAAM,WAAW,CAAC,IAAI,aAAa;AACnC,YAAI,eAAe,QAAQ;AAC3B,2BAAmB,QAAQ;AAAA,MAC7B;AAAA,IAAA,EACA;AAEF,aAAS,mBAAmB,OAAsB;AAChD,UAAI,YAAY,KAAK;AAErB,UAAI,CAAC;AACH,aAAK,QAAQ;AAAA,IACjB;AAEA,aAAS,QAAc;AACrB,UAAI,QAAQ,KAAK;AAAA,IACnB;AAEA;AAAA,MACE;AAAA,MACA,CAAC,UAAU;AACT,iBAAS,MAAM;AACb,cAAI,eAAe,KAAK;AAAA,QAC1B,CAAC;AAAA,MACH;AAAA,MACA,EAAE,WAAW,KAAA;AAAA,IAAK;AAGpB,QAAI;AACJ,QAAI;AACJ,QAAI;AAEJ,UAAM,eAAe,CAAC,UAAU;AAC9B,UAAI,2BAA2B,QAAW;AACxC,qBAAa,sBAAsB;AACnC,iCAAyB;AAAA,MAC3B;AACA,UAAI,OAAO;AACT,eAAO,sBAAsB,MAAM;AACjC,cAAI,QAAQ,KAAK;AAAA,QACnB,CAAC;AAAA,MACH,OACK;AACH,iCAAyB,WAAW,MAAM;AACxC,cAAI,QAAQ,KAAK;AACjB,mCAAyB;AAAA,QAC3B,GAAG,GAAG;AAAA,MACR;AAAA,IACF,CAAC;AAED,UAAM,QAAQ,CAACC,YAAW;AACxB,UAAI,oBAAoB,QAAW;AACjC,qBAAa,eAAe;AAC5B,0BAAkB;AAAA,MACpB;AACA,UAAIA,SAAQ;AACV,2BAAmBA,OAAM;AACzB,YAAI,eAAeA,OAAM;AAAA,MAC3B,OACK;AACH,0BAAkB,WAAW,MAAM;AACjC,6BAAmBA,OAAM;AACzB,cAAI,eAAeA,OAAM;AACzB,4BAAkB;AAAA,QACpB,GAAG,GAAG;AAAA,MACR;AAAA,IACF,CAAC;AAED,mBAAe,SAAS,MAAM;AAC5B,UAAI,IAAI,MAAM,KAAK,QAAA,aAAa,CAAC,QAAA,WAAW;AAC1C,YAAI,0BAA0B;AAC5B,uBAAa,qBAAqB;AAEpC,gCAAwB,WAAW,MAAM;AACvC,gBAAA;AACA,kCAAwB;AAAA,QAC1B,GAAG,EAAE;AAAA,MACP;AAAA,IACF,CAAC;AAED,oBAAgB,MAAM;AACpB,UAAI,2BAA2B;AAC7B,qBAAa,sBAAsB;AACrC,UAAI,oBAAoB;AACtB,qBAAa,eAAe;AAC9B,UAAI,0BAA0B;AAC5B,qBAAa,qBAAqB;AAAA,IACtC,CAAC;;0BAICC,mBA4CM,OAAA,MAAA;AAAA,QA3CJC,WAGE,KAAA,QAAA,aAAAC,eAAAC,mBAAA,EAAA,MADgBC,MAAA,aAAA,GAAa,OAASA,MAAA,cAAA,EAAA,CAAc,CAAA,CAAA;AAAA,sBAEtDC,YAsCWC,UAAA,EAtCD,IAAG,UAAM;AAAA,UAET,QAAA,wBADRD,YAeaE,YAAA;AAAA;YAbX,oBAAiB;AAAA,YACjB,sBAAmB;AAAA,YACnB,kBAAe;AAAA,YACf,oBAAiB;AAAA,YACjB,sBAAmB;AAAA,YACnB,kBAAe;AAAA,UAAA;6BAEf,MAKE;AAAA,cAJMH,MAAA,MAAA,KAAUA,MAAA,aAAA,kBADlBJ,mBAKE,OAAA;AAAA;gBAHA,WAAQ;AAAA,gBACP,OAAKQ,eAAEC,KAAAA,OAAO,OAAO;AAAA,gBACrB,6DAAY,SAAK,CAAA,MAAA,CAAA;AAAA,cAAA;;;;UAIdL,MAAA,MAAA,KAAUA,MAAA,aAAA,KAAiB,QAAA,eADnCM,UAAA,GAAAV,mBAoBQ,SApBRW,WAoBQ;AAAA;qBAlBF;AAAA,YAAJ,KAAI;AAAA,YACH,OAAOP,MAAA,KAAA;AAAA,YACP,OAAK;AAAA,cAAcK,KAAAA,OAAO;AAAA,cAAmB,QAAA;AAAA;gBAAuCA,CAAAA,KAAAA,OAAO,OAAO,GAAGL,MAAA,MAAA,KAAUA,MAAA,aAAA;AAAA,iBAA4BK,KAAAA,OAAO,QAAA,QAAQ,CAAA,GAAI,QAAA;AAAA,iBAAuBA,KAAAA,OAAO,IAAI,GAAG,QAAA;AAAA,iBAA0BA,KAAAA,OAAO,SAAS,GAAG,QAAA;AAAA,gBAAwBA,CAAAA,KAAAA,yBAAyB,QAAA;AAAA,cAAA;AAAA;YAWjS,cAAY,QAAA;AAAA,YACZ,eAAa,QAAA,eAAW,EAAML,iBAAUA,MAAA,aAAA,cAA0B;AAAA,UAAA,GAC3DA,MAAA,YAAA,EAAaQ,KAAAA,MAAM,CAAA,GAAA;AAAA,YAE3BX,WAAkD,KAAA,QAAA,WAAAC,eAAAC,mBAAA,EAAA,OAA3BC,MAAA,cAAA,GAAc,MAAA,CAAO,CAAA,CAAA;AAAA,UAAA;;;;;;"}
@@ -1,21 +1,21 @@
1
1
  export interface NotificationProps {
2
- modelValue: boolean;
3
2
  timeout: number;
4
3
  width?: number | string;
5
4
  theme?: 'light' | 'dark';
6
5
  }
7
- declare var __VLS_13: {};
8
- type __VLS_Slots = {} & {
9
- default?: (props: typeof __VLS_13) => any;
6
+ type __VLS_Props = NotificationProps;
7
+ type __VLS_Slots = {
8
+ default?: () => any;
9
+ };
10
+ type __VLS_ModelProps = {
11
+ modelValue: boolean;
10
12
  };
11
- declare const __VLS_base: import("vue").DefineComponent<NotificationProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
12
- "update:model-value": (value: boolean) => any;
13
- }, string, import("vue").PublicProps, Readonly<NotificationProps> & Readonly<{
14
- "onUpdate:model-value"?: ((value: boolean) => any) | undefined;
15
- }>, {
16
- theme: "light" | "dark";
17
- width: number | string;
18
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
13
+ type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
14
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
15
+ "update:modelValue": (value: boolean) => any;
16
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
17
+ "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
18
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
19
19
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
20
20
  declare const _default: typeof __VLS_export;
21
21
  export default _default;